summaryrefslogtreecommitdiff
path: root/www/js/EventServer.js
diff options
context:
space:
mode:
authorArjun Roychowdhury <pliablepixels@gmail.com>2015-10-06 16:57:52 -0400
committerArjun Roychowdhury <pliablepixels@gmail.com>2015-10-06 16:57:52 -0400
commit40fc4fc94ee0523aea1a36f8f6cf3acb4af0b599 (patch)
tree0ccc6de3ed65e87387d7e89266da932a823cc006 /www/js/EventServer.js
parentdd8d072fdae253c611e8ca3ff9ed8d92f0d4483a (diff)
support for Event Notification
Diffstat (limited to 'www/js/EventServer.js')
-rw-r--r--www/js/EventServer.js73
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
+ };
+
+
+}]);
+
+