Clean up.
parent
f55c2d0f59
commit
31b767afbf
|
|
@ -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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue