From 4aacd291b1d4345d4a12e961b9db615b78943585 Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 27 Jan 2017 16:45:41 +0100 Subject: [PATCH] New config option to use an external websocket server --- config.js.dist | 6 ++++++ server.js | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/config.js.dist b/config.js.dist index 103bf959b..95ba7ed49 100644 --- a/config.js.dist +++ b/config.js.dist @@ -50,6 +50,12 @@ module.exports = { */ //websocketPort: 3000, + /* if you want to run a different version of cryptpad but using the same websocket + * server, you should use the other server port as websocketPort and disable + * the websockets on that server + */ + //useExternalWebsocket: false, + /* If Cryptpad is proxied without using https, the server needs to know. * Specify 'useSecureWebsockets: true' so that it can send * Content Security Policy Headers that prevent http and https from mixing diff --git a/server.js b/server.js index 2be619e48..6414c83bc 100644 --- a/server.js +++ b/server.js @@ -82,7 +82,7 @@ app.get('/api/config', function(req, res){ var host = req.headers.host.replace(/\:[0-9]+/, ''); res.setHeader('Content-Type', 'text/javascript'); res.send('define(' + JSON.stringify({ - websocketPath: config.websocketPath, + websocketPath: config.useExternalWebsocket ? undefined : config.websocketPath, websocketURL:'ws' + ((useSecureWebsockets) ? 's' : '') + '://' + host + ':' + websocketPort + '/cryptpad_websocket', }) + ');'); @@ -95,11 +95,14 @@ httpServer.listen(config.httpPort,config.httpAddress,function(){ }); var wsConfig = { server: httpServer }; -if (websocketPort !== config.httpPort) { - console.log("setting up a new websocket server"); - wsConfig = { port: websocketPort}; + +if(!config.useExternalWebsocket) { + if (websocketPort !== config.httpPort) { + console.log("setting up a new websocket server"); + wsConfig = { port: websocketPort}; + } + var wsSrv = new WebSocketServer(wsConfig); + Storage.create(config, function (store) { + NetfluxSrv.run(store, wsSrv, config); + }); } -var wsSrv = new WebSocketServer(wsConfig); -Storage.create(config, function (store) { - NetfluxSrv.run(store, wsSrv, config); -});