equal
deleted
inserted
replaced
|
1 /** |
|
2 * js/wswrapper.js |
|
3 * |
|
4 * simple webservice wrapper to register callbacks on onmessage |
|
5 * |
|
6 */ |
|
7 |
|
8 /* global WebSocket: false */ |
|
9 |
|
10 'use strict'; |
|
11 |
|
12 function WsWrapper(wsurl, logger) { |
|
13 |
|
14 var url = wsurl; |
|
15 var sock = new WebSocket(url); |
|
16 var loggerObj = logger; |
|
17 |
|
18 var log = function(msg) { |
|
19 if(loggerObj) { |
|
20 loggerObj.log(msg); |
|
21 } |
|
22 }; |
|
23 |
|
24 var handlers = []; |
|
25 |
|
26 sock.onopen = function() { |
|
27 log('Connected to ' + url); |
|
28 }; |
|
29 |
|
30 sock.onclose = function(e) { |
|
31 log('Connection closed (wasClean = ' + e.wasClean + ', code = ' + e.code + ', reason = \'' + e.reason + '\')'); |
|
32 sock = null; |
|
33 }; |
|
34 |
|
35 sock.onmessage = function(e) { |
|
36 log('received ' + e.data); |
|
37 var data = JSON.parse(e.data); |
|
38 handlers.forEach(function(handler) { |
|
39 handler(data); |
|
40 }); |
|
41 }; |
|
42 |
|
43 this.message = function(handler) { |
|
44 if(handler) { |
|
45 handlers.push(handler); |
|
46 } |
|
47 }; |
|
48 |
|
49 } |
|
50 |
|
51 module.exports = { |
|
52 WsWrapper: WsWrapper |
|
53 }; |