diff options
author | Egil Moeller <egil.moller@freecode.no> | 2012-02-26 13:07:51 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2012-02-26 13:07:51 +0100 |
commit | 1239ce7f284821ad4ce51f8219c480ff557a5b86 (patch) | |
tree | 83816de3b8855fb89fadcb2383b3f8f81d66daf8 /src/node/hooks/express/socketio.js | |
parent | 1955bdec9a0f0448e5b04638f0e69ed3b9210f39 (diff) | |
download | etherpad-lite-1239ce7f284821ad4ce51f8219c480ff557a5b86.zip |
The Big Renaming - etherpad is now an NPM module
Diffstat (limited to 'src/node/hooks/express/socketio.js')
-rw-r--r-- | src/node/hooks/express/socketio.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/node/hooks/express/socketio.js b/src/node/hooks/express/socketio.js new file mode 100644 index 00000000..bc65c7b7 --- /dev/null +++ b/src/node/hooks/express/socketio.js @@ -0,0 +1,49 @@ +var log4js = require('log4js'); +var socketio = require('socket.io'); +var settings = require('../../utils/Settings'); +var socketIORouter = require("../../handler/SocketIORouter"); +var hooks = require("../../pluginfw/hooks"); + +var padMessageHandler = require("../../handler/PadMessageHandler"); +var timesliderMessageHandler = require("../../handler/TimesliderMessageHandler"); + + +exports.expressCreateServer = function (hook_name, args, cb) { + //init socket.io and redirect all requests to the MessageHandler + var io = socketio.listen(args.app); + + //this is only a workaround to ensure it works with all browers behind a proxy + //we should remove this when the new socket.io version is more stable + io.set('transports', ['xhr-polling']); + + var socketIOLogger = log4js.getLogger("socket.io"); + io.set('logger', { + debug: function (str) + { + socketIOLogger.debug.apply(socketIOLogger, arguments); + }, + info: function (str) + { + socketIOLogger.info.apply(socketIOLogger, arguments); + }, + warn: function (str) + { + socketIOLogger.warn.apply(socketIOLogger, arguments); + }, + error: function (str) + { + socketIOLogger.error.apply(socketIOLogger, arguments); + }, + }); + + //minify socket.io javascript + if(settings.minify) + io.enable('browser client minification'); + + //Initalize the Socket.IO Router + socketIORouter.setSocketIO(io); + socketIORouter.addComponent("pad", padMessageHandler); + socketIORouter.addComponent("timeslider", timesliderMessageHandler); + + hooks.callAll("socketio", {"app": args.app, "io": io}); +} |