summaryrefslogtreecommitdiff
path: root/www/js/EventServer.js
blob: 9e95adb22370ff78252b4fdfc568f1e6759d81dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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
     };
        

}]);