summaryrefslogtreecommitdiff
path: root/src/node/hooks/express/socketio.js
diff options
context:
space:
mode:
authorEgil Moeller <egil.moller@freecode.no>2012-02-26 13:07:51 +0100
committerEgil Moeller <egil.moller@freecode.no>2012-02-26 13:07:51 +0100
commit1239ce7f284821ad4ce51f8219c480ff557a5b86 (patch)
tree83816de3b8855fb89fadcb2383b3f8f81d66daf8 /src/node/hooks/express/socketio.js
parent1955bdec9a0f0448e5b04638f0e69ed3b9210f39 (diff)
downloadetherpad-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.js49
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});
+}