diff options
| author | Arjun Roychowdhury <pliablepixels@gmail.com> | 2015-10-06 16:57:52 -0400 |
|---|---|---|
| committer | Arjun Roychowdhury <pliablepixels@gmail.com> | 2015-10-06 16:57:52 -0400 |
| commit | 40fc4fc94ee0523aea1a36f8f6cf3acb4af0b599 (patch) | |
| tree | 0ccc6de3ed65e87387d7e89266da932a823cc006 /www/js/EventServer.js | |
| parent | dd8d072fdae253c611e8ca3ff9ed8d92f0d4483a (diff) | |
support for Event Notification
Diffstat (limited to 'www/js/EventServer.js')
| -rw-r--r-- | www/js/EventServer.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/www/js/EventServer.js b/www/js/EventServer.js new file mode 100644 index 00000000..9e95adb2 --- /dev/null +++ b/www/js/EventServer.js @@ -0,0 +1,73 @@ +/* jshint -W041 */ + + +/* jslint browser: true*/ +/* global cordova,StatusBar,angular,console */ + +// Websockets + +angular.module('zmApp.controllers') + +.factory('EventServer', +[ 'ZMDataModel', '$rootScope','$websocket', function + ( ZMDataModel, $rootScope, $websocket) { + + + + function start() + { + if ($rootScope.websocketActive == 1) + { + ZMDataModel.zmDebug ("Connection established. Not doing WebSocketInit again..."); + return; + } + var loginData = ZMDataModel.getLogin(); + + + if (loginData.eventServer) + { + var evtsvrUrl=loginData.eventServer+'/?user='+ + loginData.username+'&passwd='+loginData.password; + // if (ws) ws.$close(); + ZMDataModel.zmLog("Event Server URL constructed as " + evtsvrUrl); + var ws = $websocket.$new ({ + url:evtsvrUrl, + reconnect:true, + reconnectInterval:5000 + }); + + ws.$on ('$open', function() { + ZMDataModel.zmLog("Websocket open"); + $rootScope.websocketActive=1; + }); + + ws.$on ('$close', function() { + ZMDataModel.zmLog ("Websocket closed"); + $rootScope.websocketActive = 0; + }); + + ws.$on ('$message', function(str) { + ZMDataModel.zmLog("Real-time event: " + str); + var evt=str.split(":"); + var evtStr = "New Alarm in " + evt[0]+" ("+evt[2]+")"; + ZMDataModel.displayBanner('alarm',[evtStr],6000,6000); + + + }); + + } + else + { + ZMDataModel.zmLog("No Event Server configured, skipping"); + } + + } + + return { + start:start + }; + + +}]); + + |
