var MMSocket = function(moduleName) { var self = this; if (typeof moduleName !== "string") { throw new Error("Please set the module name for the MMSocket."); } self.moduleName = moduleName; // Private Methods socket = io.connect("/" + self.moduleName); var notificationCallback = function() {}; var onevent = socket.onevent; socket.onevent = function(packet) { var args = packet.data || []; onevent.call(this, packet); // original call packet.data = ["*"].concat(args); onevent.call(this, packet); // additional call to catch-all }; // register catch all. socket.on("*", function(notification, payload) { if (notification !== "*") { //console.log('Received notification: ' + notification +', payload: ' + payload); notificationCallback(notification, payload); } }); // Public Methods this.setNotificationCallback = function(callback) { notificationCallback = callback; }; this.sendNotification = function(notification, payload) { if (typeof payload === "undefined") { payload = {}; } socket.emit(notification, payload); }; };