module.exports = function(io, streams) { io.on('connection', function(socket) { console.log('-- ' + socket.id + ' joined --'); socket.emit('id', socket.id); socket.on('message', function (details) { var othersocket = io.sockets.connected[details.to]; if (!othersocket) { return; } delete details.to; details.from = socket.id; othersocket.emit('message', details); }); socket.on('readyToStream', function(options) { console.log('-- ' + socket.id + ' is ready to stream --'); streams.addStream(socket.id, options.name); }); socket.on('update', function(options) { streams.update(socket.id, options.name); }); function leave() { console.log('-- ' + socket.id + ' left --'); streams.removeStream(socket.id); } socket.on('disconnect', leave); socket.on('leave', leave); }); };