diff -r 545803e685e0 -r 72d767c5142d client/annotviz/app/js/wswrapper.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/annotviz/app/js/wswrapper.js Tue Jan 20 11:57:44 2015 +0100 @@ -0,0 +1,53 @@ +/** +* js/wswrapper.js +* +* simple webservice wrapper to register callbacks on onmessage +* +*/ + +/* global WebSocket: false */ + +'use strict'; + +function WsWrapper(wsurl, logger) { + + var url = wsurl; + var sock = new WebSocket(url); + var loggerObj = logger; + + var log = function(msg) { + if(loggerObj) { + loggerObj.log(msg); + } + }; + + var handlers = []; + + sock.onopen = function() { + log('Connected to ' + url); + }; + + sock.onclose = function(e) { + log('Connection closed (wasClean = ' + e.wasClean + ', code = ' + e.code + ', reason = \'' + e.reason + '\')'); + sock = null; + }; + + sock.onmessage = function(e) { + log('received ' + e.data); + var data = JSON.parse(e.data); + handlers.forEach(function(handler) { + handler(data); + }); + }; + + this.message = function(handler) { + if(handler) { + handlers.push(handler); + } + }; + +} + +module.exports = { + WsWrapper: WsWrapper +};