From f2e9b46144ce257c507f40971104012d93797f19 Mon Sep 17 00:00:00 2001 From: Pontus Persson Date: Fri, 8 Dec 2017 20:27:42 +0100 Subject: [PATCH] Unraveling the timing. --- client/peer-exchange.js | 14 +++++++++----- client/webrtc.js | 10 +++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/client/peer-exchange.js b/client/peer-exchange.js index 548bd87..9d02932 100644 --- a/client/peer-exchange.js +++ b/client/peer-exchange.js @@ -1,6 +1,6 @@ import { createUUID } from './random.js'; -export function createPeerExchange(address) { +export async function createPeerExchange(address) { const uuid = createUUID(); const server = new WebSocket(address); @@ -26,8 +26,12 @@ export function createPeerExchange(address) { server.addEventListener('message', onMessage); - return { - listen, - send, - }; + return new Promise(resolve => { + server.addEventListener('open', () => { + resolve({ + listen, + send, + }); + }); + }); } diff --git a/client/webrtc.js b/client/webrtc.js index 4746e9e..e126904 100755 --- a/client/webrtc.js +++ b/client/webrtc.js @@ -5,16 +5,16 @@ import { createPeer } from './peer.js'; var peerConnection; var serverConnection; -function pageReady() { +async function pageReady() { document.querySelector("button#start") .addEventListener("click", extendOffer); - serverConnection = createPeerExchange('wss://' + window.location.hostname + ':8443'); + serverConnection = await createPeerExchange('wss://' + window.location.hostname + ':8443'); setup(); } -function setup() { +async function setup() { peerConnection = createPeer(serverConnection, peerConnectionConfig); peerConnection.addEventListener('addstream', stream => { @@ -30,10 +30,14 @@ function setup() { .then(stream => { document.getElementById('localVideo').srcObject = stream; peerConnection.addStream(stream); + extendOffer(); }); + + //setTimeout(extendOffer, 50); } function extendOffer() { + console.log('Extending offer'); peerConnection.createOffer().then(createdDescription).catch(errorHandler); }