Make it work on Firefox
This commit is contained in:
parent
537b67b1e1
commit
3b95107bbc
@ -1,3 +1,4 @@
|
|||||||
|
const Promise = require('bluebird');
|
||||||
const debug = require('debug')('peer-calls:call');
|
const debug = require('debug')('peer-calls:call');
|
||||||
const dispatcher = require('./dispatcher/dispatcher.js');
|
const dispatcher = require('./dispatcher/dispatcher.js');
|
||||||
const getUserMedia = require('./browser/getUserMedia.js');
|
const getUserMedia = require('./browser/getUserMedia.js');
|
||||||
@ -13,37 +14,40 @@ dispatcher.register(action => {
|
|||||||
function init() {
|
function init() {
|
||||||
const callId = window.document.getElementById('callId').value;
|
const callId = window.document.getElementById('callId').value;
|
||||||
|
|
||||||
getUserMedia({ video: true, audio: false })
|
Promise.all([connect(), getCameraStream()])
|
||||||
|
.spread((_socket, stream) => {
|
||||||
|
debug('initializing peer connection');
|
||||||
|
handshake.init(_socket, callId, stream);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function connect() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
socket.once('connect', () => {
|
||||||
|
notify.warn('Connected to server socket');
|
||||||
|
debug('socket connected');
|
||||||
|
resolve(socket);
|
||||||
|
});
|
||||||
|
socket.on('disconnect', () => {
|
||||||
|
notify.error('Server socket disconnected');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCameraStream() {
|
||||||
|
return getUserMedia({ video: true, audio: false })
|
||||||
.then(stream => {
|
.then(stream => {
|
||||||
|
debug('got our media stream:', stream);
|
||||||
dispatcher.dispatch({
|
dispatcher.dispatch({
|
||||||
type: 'add-stream',
|
type: 'add-stream',
|
||||||
userId: '_me_',
|
userId: '_me_',
|
||||||
stream
|
stream
|
||||||
});
|
});
|
||||||
|
return stream;
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
notify.alert('Could not get access to microphone & camera');
|
notify.alert('Could not get access to microphone & camera');
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.once('connect', () => {
|
|
||||||
notify.warn('Connected to server socket');
|
|
||||||
debug('socket connected');
|
|
||||||
|
|
||||||
getUserMedia({ video: true, audio: true })
|
|
||||||
.then(stream => {
|
|
||||||
debug('forwarding stream to handshake');
|
|
||||||
handshake.init(socket, callId, stream);
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
notify.alert('Could not get access to camera!', true);
|
|
||||||
debug('error getting media: %s %s', err.name, err.message);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('disconnect', () => {
|
|
||||||
notify.error('Server socket disconnected');
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { init };
|
module.exports = { init };
|
||||||
|
|||||||
@ -29,10 +29,6 @@ function create({ socket, user, initiator, stream }) {
|
|||||||
iceServers: [{
|
iceServers: [{
|
||||||
url: 'stun:23.21.150.121',
|
url: 'stun:23.21.150.121',
|
||||||
urls: 'stun:23.21.150.121'
|
urls: 'stun:23.21.150.121'
|
||||||
}, {
|
|
||||||
url: 'turn:numb.viagenie.ca',
|
|
||||||
credential: 'muazkh',
|
|
||||||
username: 'webrtc@live.com'
|
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -40,8 +40,6 @@ if (__dirname.indexOf('/dist/') >= 0 || __dirname.indexOf('\\dist\\') >= 0) {
|
|||||||
app.use('/call', callRouter);
|
app.use('/call', callRouter);
|
||||||
app.use('/', siteRouter);
|
app.use('/', siteRouter);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
io.on('connection', socket => handleSocket(socket, io));
|
io.on('connection', socket => handleSocket(socket, io));
|
||||||
|
|
||||||
module.exports = { http, app };
|
module.exports = { http, app };
|
||||||
|
|||||||
@ -10,7 +10,7 @@ router.use((req, res, next) => {
|
|||||||
|
|
||||||
router.get('/', (req, res) => {
|
router.get('/', (req, res) => {
|
||||||
let prefix = 'call/';
|
let prefix = 'call/';
|
||||||
if (req.url.charAt(req.url.length - 1) === '/') prefix = '';
|
if (req.url.charAt(req.originalUrl.length - 1) === '/') prefix = '';
|
||||||
res.redirect(prefix + uuid.v4());
|
res.redirect(prefix + uuid.v4());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ html
|
|||||||
|
|
||||||
div#container
|
div#container
|
||||||
|
|
||||||
form#form(method="get" action="call")
|
form#form(method="get" action="call/")
|
||||||
h1
|
h1
|
||||||
img(src="res/peer-calls.svg" width="100%" alt="Peer Calls")
|
img(src="res/peer-calls.svg" width="100%" alt="Peer Calls")
|
||||||
p Group peer-to-peer calls for everyone. Create a private room. Share the link.
|
p Group peer-to-peer calls for everyone. Create a private room. Share the link.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user