|
@@ -1,5 +1,7 @@
|
|
|
-var app = require('express').createServer()
|
|
|
- , io = require('socket.io').listen(app);
|
|
|
+var app = require('express').createServer();
|
|
|
+var io = require('./webrtc.io').listen(app);
|
|
|
+
|
|
|
+var colors = {};
|
|
|
|
|
|
app.listen(80);
|
|
|
|
|
@@ -15,98 +17,16 @@ app.get('/io.js', function (req, res) {
|
|
|
res.sendfile(__dirname + '/lib/io.js');
|
|
|
});
|
|
|
|
|
|
-var connections = [];
|
|
|
-var colors = {};
|
|
|
-
|
|
|
io.sockets.on('connection', function(socket) {
|
|
|
console.log("connection received");
|
|
|
- connections.push(socket);
|
|
|
- colors[socket.id] = Math.floor(Math.random()* 0xFFFFFF)
|
|
|
-
|
|
|
- var connectionsId = [];
|
|
|
-
|
|
|
- for (var i = 0, len = connections.length; i < len; i++) {
|
|
|
- var id = connections[i].id;
|
|
|
-
|
|
|
- if (id !== socket.id) {
|
|
|
- connectionsId.push(id);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- socket.emit('get peers', {
|
|
|
- connections: connectionsId
|
|
|
- });
|
|
|
-
|
|
|
- socket.broadcast.emit('new peer connected', { socketId: socket.id });
|
|
|
-
|
|
|
- socket.on('disconnect', function() {
|
|
|
-
|
|
|
- for (var i = 0; i < connections.length; i++) {
|
|
|
- var id = connections[i].id;
|
|
|
-
|
|
|
- if (id == socket.id) {
|
|
|
- connections.splice(i, 1);
|
|
|
- i--;
|
|
|
- socket.broadcast.emit('remove peer connected', { socketId: socket.id });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- socket.on('receive ice candidate', function(data) {
|
|
|
- console.log("ice candidate received");
|
|
|
-
|
|
|
- var soc = getSocket(data.socketId);
|
|
|
-
|
|
|
- if (soc) {
|
|
|
- soc.emit('receive ice candidate', {
|
|
|
- label: data.label,
|
|
|
- candidate: data.candidate,
|
|
|
- socketId: socket.id
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- socket.on('send offer', function(data) {
|
|
|
- console.log("offer received");
|
|
|
-
|
|
|
- var soc = getSocket(data.socketId);
|
|
|
-
|
|
|
- if (soc) {
|
|
|
- soc.emit('receive offer', {
|
|
|
- sdp: data.sdp,
|
|
|
- socketId: socket.id
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- socket.on('send answer', function(data) {
|
|
|
- console.log("answer received");
|
|
|
-
|
|
|
- var soc = getSocket(data.socketId);
|
|
|
-
|
|
|
- if (soc) {
|
|
|
- soc.emit('receive answer', {
|
|
|
- sdp: data.sdp,
|
|
|
- socketId: socket.id
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
|
|
|
+ colors[socket.id] = Math.floor(Math.random()* 0xFFFFFF)
|
|
|
socket.on('chat msg', function(msg) {
|
|
|
console.log("chat received");
|
|
|
|
|
|
- socket.broadcast.emit('receive chat msg', { msg: msg, color: colors[socket.id]});
|
|
|
+ socket.broadcast.emit('receive chat msg', {
|
|
|
+ msg: msg,
|
|
|
+ color: colors[socket.id]
|
|
|
+ });
|
|
|
});
|
|
|
-
|
|
|
-});
|
|
|
-
|
|
|
-
|
|
|
-function getSocket(id) {
|
|
|
- for (var i = 0; i < connections.length; i++) {
|
|
|
- var socket = connections[i];
|
|
|
- if (id === socket.id) {
|
|
|
- return socket;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+});
|