From ae8f6f7f2c5cebee3ef8939a7fbb75c5ac127210 Mon Sep 17 00:00:00 2001 From: Yann Flory Date: Thu, 10 Mar 2016 14:03:31 +0100 Subject: [PATCH] Ability to choose which protocol to use (Websocket or WebRTC) with Netflux --- WebRTCSrv.js | 35 +------ config.js.dist | 2 + customize.dist/index.html | 6 +- server.js | 43 +++++--- www/common/netflux.js | 119 +++++++++++---------- www/common/realtime-input.js | 194 +++++++++++++++++------------------ www/hack/main.js | 1 + www/vdom/main.js | 1 + 8 files changed, 196 insertions(+), 205 deletions(-) diff --git a/WebRTCSrv.js b/WebRTCSrv.js index 8b0c78321..c97c18b79 100644 --- a/WebRTCSrv.js +++ b/WebRTCSrv.js @@ -1,11 +1,10 @@ 'use strict' let WebSocketServer = require('ws').Server -const PORT = 8000 const UNSUPPORTED_DATA = 1007 const POLICY_VIOLATION = 1008 const CLOSE_UNSUPPORTED = 1003 -var run = module.exports.run = function(storage, server) { +var run = module.exports.run = function(server) { server.on('connection', (socket) => { socket.on('message', (data) => { try { @@ -15,7 +14,6 @@ var run = module.exports.run = function(storage, server) { for (let master of server.clients) { if (master.key === msg.key) { socket.close(POLICY_VIOLATION, 'The key already exists') - console.log('ERROR key exists'); return } } @@ -32,16 +30,13 @@ var run = module.exports.run = function(storage, server) { } else if (msg.hasOwnProperty('join')) { for (let master of server.clients) { if (master.key === msg.join) { - console.log('joined'); socket.master = master master.joiningClients.push(socket) let id = master.joiningClients.length - 1 - console.log(id); master.send(JSON.stringify({id, data: msg.data})) return } } - console.log('ERROR unknown key'); socket.close(POLICY_VIOLATION, 'Unknown key') } else if (msg.hasOwnProperty('data') && socket.hasOwnProperty('master')) { let id = socket.master.joiningClients.indexOf(socket) @@ -55,31 +50,11 @@ var run = module.exports.run = function(storage, server) { }) socket.on('close', (event) => { - console.log('someone has closed'); - // If not master - if (socket.hasOwnProperty('master')) { - let masterClients = socket.master.joiningClients - for (let client of masterClients) { - if(client.id === socket.id) { - console.log('close client '+client.key) - client.close(POLICY_VIOLATION, 'The peer is no longer available') - //masterClients.splice(masterClients.indexOf(client),1); - } - } - } - else if (socket.hasOwnProperty('joiningClients')) { - let firstClient - let masterClients = socket.joiningClients - for (let client of masterClients) { - firstClient = client - break; + if (socket.hasOwnProperty('joiningClients')) { + for (let client of socket.joiningClients) { + client.close(POLICY_VIOLATION, 'The peer is no longer available') } - firstClient.close(POLICY_VIOLATION, 'The master is no longer available') - //masterClients.splice(masterClients.indexOf(firstClient),1); - firstClient.joiningClients = masterClients - console.log('change master from '+socket.key+' to '+firstClient.key) - socket = firstClient } - }) + }); }) } \ No newline at end of file diff --git a/config.js.dist b/config.js.dist index f61828e4c..56d7a1fc8 100644 --- a/config.js.dist +++ b/config.js.dist @@ -11,6 +11,8 @@ module.exports = { httpPort: 3000, // the port used for websockets websocketPort: 3001, + // the port used for webrtc (uncomment to use the WebRTC server) + // webrtcPort: 3002, // You now have a choice of storage engines diff --git a/customize.dist/index.html b/customize.dist/index.html index b652894e6..69e2eaa9f 100644 --- a/customize.dist/index.html +++ b/customize.dist/index.html @@ -123,9 +123,12 @@