Clean up.

pull/25/head
Pontus Persson 2017-12-09 00:51:02 +01:00 committed by Pontus Alexander
parent f55c2d0f59
commit 31b767afbf
2 changed files with 7 additions and 55 deletions

View File

@ -1,19 +1,7 @@
import { createUUID } from './random.js'; import { createUUID } from './random.js';
function errorHandler(error) { function errorHandler(error) {
console.log(error); console.error(error);
}
function filter(uuid) {
return function filterSignal(callback) {
return function(signal) {
if (signal.uuid === uuid) {
console.log(`${uuid} ours, filtering`);
return;
}
callback(signal);
}
}
} }
export function createHost(peerExchange, peerConnectionConfig) { export function createHost(peerExchange, peerConnectionConfig) {
@ -35,10 +23,10 @@ export function createHost(peerExchange, peerConnectionConfig) {
emitConnection(conn); emitConnection(conn);
const remoteDesc = new RTCSessionDescription(signal.sdp); const remoteDesc = new RTCSessionDescription(signal.sdp);
conn.setRemoteDescription(remoteDesc); conn.setRemoteDescription(remoteDesc).catch(errorHandler);
const localDesc = await conn.createAnswer(); const localDesc = await conn.createAnswer();
conn.setLocalDescription(localDesc); conn.setLocalDescription(localDesc).catch(errorHandler);
send({sdp: localDesc}); send({sdp: localDesc});
} }
@ -52,17 +40,17 @@ export function createHost(peerExchange, peerConnectionConfig) {
export function createGuest(peerExchange, peerConnectionConfig) { export function createGuest(peerExchange, peerConnectionConfig) {
const {conn, onSignal, send} = createConn(peerExchange, peerConnectionConfig); const {conn, onSignal, send} = createConn(peerExchange, peerConnectionConfig);
onSignal(async signal => { onSignal(signal => {
console.log("Guest signal", signal); console.log("Guest signal", signal);
if (signal.sdp && signal.sdp.type === "answer") { if (signal.sdp && signal.sdp.type === "answer") {
const remoteDesc = new RTCSessionDescription(signal.sdp); const remoteDesc = new RTCSessionDescription(signal.sdp);
await conn.setRemoteDescription(remoteDesc); conn.setRemoteDescription(remoteDesc).catch(errorHandler);
} }
}); });
async function connect() { async function connect() {
const localDesc = await conn.createOffer(); const localDesc = await conn.createOffer();
await conn.setLocalDescription(localDesc); conn.setLocalDescription(localDesc).catch(errorHandler);
send({sdp: localDesc}); send({sdp: localDesc});
} }
@ -113,39 +101,3 @@ export function createConn(peerExchange, peerConnectionConfig) {
send, send,
}; };
} }
export function createPeer(peerExchange, peerConnectionConfig) {
const conn = new RTCPeerConnection(peerConnectionConfig);
conn.addEventListener('icecandidate', event => {
if(event.candidate != null) {
peerExchange.send({'ice': event.candidate});
}
});
peerExchange.listen(createPeerExchangeMessageHandler(conn));
return conn;
}
function createPeerExchangeMessageHandler(conn) {
return function gotMessageFromServer(signal, send) {
if(signal.sdp) {
console.log("SDP", signal.sdp.type);
conn.setRemoteDescription(new RTCSessionDescription(signal.sdp))
.then(() => {
// Only create answers in response to offers
if(signal.sdp.type == 'offer') {
console.log("Creating answer", signal);
return conn.createAnswer()
.then(desc => {
conn.setLocalDescription(desc);
send({'sdp': desc})
});
}
}).catch(errorHandler);
} else if(signal.ice) {
conn.addIceCandidate(new RTCIceCandidate(signal.ice)).catch(errorHandler);
}
};
}

View File

@ -1,6 +1,6 @@
import { dataChannelConfig, peerConnectionConfig } from './config.js'; import { dataChannelConfig, peerConnectionConfig } from './config.js';
import { createPeerExchange } from './peer-exchange.js'; import { createPeerExchange } from './peer-exchange.js';
import { createPeer, createHost, createGuest} from './peer.js'; import { createHost, createGuest} from './peer.js';
var peerConnection; var peerConnection;
var serverConnection; var serverConnection;