diff --git a/.eslintcache b/.eslintcache index 96d9a22f6cb9db1f56996a9ec353daeada0dc899..02cc68f804c2f55081b339f84339d2290a764231 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -{"/Users/leon/liowebrtc/test/selenium/index.js":{"size":160,"mtime":1526638470508,"hashOfConfig":"1kw6cgg","results":{"filePath":"/Users/leon/liowebrtc/test/selenium/index.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0}}} \ No newline at end of file +{"/Users/leon/liowebrtc/test/selenium/index.js":{"size":160,"mtime":1526638470508,"hashOfConfig":"1dw2gtw","results":{"filePath":"/Users/leon/liowebrtc/test/selenium/index.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0}}} diff --git a/.eslintrc b/.eslintrc index 32f3b494e30d346324a50fa346237e13c04c44ce..fa3083b87089a5ede14928a5646028cc556613e0 100644 --- a/.eslintrc +++ b/.eslintrc @@ -10,6 +10,8 @@ "max-len": 0, "no-multi-assign": 0, "no-restricted-syntax": 0, - "no-param-reassign": 0 + "no-param-reassign": 0, + "no-shadow": 0, + "consistent-return": 0 } } diff --git a/.gitignore b/.gitignore index da592f8d929a709e27a696e18c1da232c1390814..74c2dde808d7413fd72819824b6c80256f6e48f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ node_modules .DS_Store dist +yarn-error.log +.eslintcache diff --git a/src/liowebrtc.js b/src/liowebrtc.js index e9fdc37e5766c57287a4416977e30612d0ff550f..82e56e81b68e9388ac1fba954154b9eb5dad5eae 100644 --- a/src/liowebrtc.js +++ b/src/liowebrtc.js @@ -134,7 +134,7 @@ class LioWebRTC extends WildEmitter { }); // proxy events from WebRTC - this.webrtc.on('*', () => { + this.webrtc.on('*', function () { self.emit(...arguments); }); @@ -173,7 +173,7 @@ class LioWebRTC extends WildEmitter { }); this.webrtc.on('iceFailed', (peer) => { - + // local ice failure }); this.webrtc.on('connectivityError', (peer) => { // remote ice failure @@ -399,6 +399,10 @@ class LioWebRTC extends WildEmitter { }); } + attachStream(stream, el) { + attachMediaStream(stream, el); + } + testReadiness() { const self = this; if (this.sessionReady) { diff --git a/src/peer.js b/src/peer.js index c6eb9f152174fb51fbce1c78b4e146d849e0615b..47dc98521da686f2a0b8a2d23319a453156fca47 100644 --- a/src/peer.js +++ b/src/peer.js @@ -106,50 +106,39 @@ class Peer extends WildEmitter { this.logger.log('getting', message.type, message); if (message.prefix) this.browserPrefix = message.prefix; - switch (message.type) { - case 'offer': - if (!this.nick) this.nick = message.payload.nick; - delete message.payload.nick; - this.pc.handleOffer(message.payload, (err) => { - if (!err) { - self.pc.answer((err, sessionDescription) => { - // self.send('answer', sessionDescription); - }); - } - }); - break; - case 'answer': - if (!this.nick) this.nick = message.payload.nick; - delete message.payload.nick; - this.pc.handleAnswer(message.payload); - break; - case 'candidate': - this.pc.processIce(message.payload); - break; - case 'connectivityError': - this.parent.emit('connectivityError', self); - break; - case 'mute': - this.parent.emit('mute', { - id: message.from, - name: message.payload.name, - }); - break; - case 'unmute': - this.parent.emit('unmute', { id: message.from, name: message.payload.name }); - break; - case 'endOfCandidates': - // Edge requires an end-of-candidates. Since only Edge will have mLines or tracks on the - // shim this will only be called in Edge. - const mLines = this.pc.pc.transceivers || []; - mLines.forEach((mLine) => { - if (mLine.iceTransport) { - mLine.iceTransport.addRemoteCandidate({}); - } + if (message.type === 'offer') { + if (!this.nick) this.nick = message.payload.nick; + delete message.payload.nick; + this.pc.handleOffer(message.payload, (err) => { + if (err) { + return; + } + // auto-accept + self.pc.answer((err, sessionDescription) => { + // self.send('answer', sessionDescription); }); - break; - default: - break; + }); + } else if (message.type === 'answer') { + if (!this.nick) this.nick = message.payload.nick; + delete message.payload.nick; + this.pc.handleAnswer(message.payload); + } else if (message.type === 'candidate') { + this.pc.processIce(message.payload); + } else if (message.type === 'connectivityError') { + this.parent.emit('connectivityError', self); + } else if (message.type === 'mute') { + this.parent.emit('mute', { id: message.from, name: message.payload.name }); + } else if (message.type === 'unmute') { + this.parent.emit('unmute', { id: message.from, name: message.payload.name }); + } else if (message.type === 'endOfCandidates') { + // Edge requires an end-of-candidates. Since only Edge will have mLines or tracks on the + // shim this will only be called in Edge. + const mLines = this.pc.pc.transceivers || []; + mLines.forEach((mLine) => { + if (mLine.iceTransport) { + mLine.iceTransport.addRemoteCandidate({}); + } + }); } } diff --git a/yarn-error.log b/yarn-error.log index 8e96622d970fc1802680e9165810d9d77771a8c0..8c298f8b125cd13448e61889446be46774cc27b4 100644 --- a/yarn-error.log +++ b/yarn-error.log @@ -1520,6 +1520,7 @@ Lockfile: version "1.3.48" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900" +<<<<<<< HEAD emoji-regex@^6.1.0: version "6.5.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" @@ -1530,6 +1531,8 @@ Lockfile: dependencies: iconv-lite "~0.4.13" +======= +>>>>>>> emit-fix engine.io-client@1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.5.4.tgz#c6ad65a65752a29cb930c6911e579d2b28d1106c"