svghmi/svghmi_server.py
branchsvghmi
changeset 3278 2bcfbea6a2a8
parent 3273 08a5a019bed2
child 3281 1fc4274de64e
equal deleted inserted replaced
3277:8e81e4ce9bc6 3278:2bcfbea6a2a8
    95                 if self.watchdog_session != session:
    95                 if self.watchdog_session != session:
    96                     return
    96                     return
    97                 self.watchdog_session = None
    97                 self.watchdog_session = None
    98             else:
    98             else:
    99                 try:
    99                 try:
   100                     self.multiclient_sessions.remove(self)
   100                     self.multiclient_sessions.remove(session)
   101                 except KeyError:
   101                 except KeyError:
   102                     return
   102                     return
   103             self.free_index(session.session_index)
   103             self.free_index(session.session_index)
   104             self.session_count -= 1
   104             self.session_count -= 1
   105         session.kill()
   105         session.kill()
   212         return WebSocketServerProtocol.onConnect(self, request)
   212         return WebSocketServerProtocol.onConnect(self, request)
   213 
   213 
   214     def onOpen(self):
   214     def onOpen(self):
   215         global svghmi_session_manager
   215         global svghmi_session_manager
   216         assert(self._hmi_session is None)
   216         assert(self._hmi_session is None)
   217         self._hmi_session = HMISession(self)
   217         _hmi_session = HMISession(self)
   218         registered = svghmi_session_manager.register(self._hmi_session)
   218         registered = svghmi_session_manager.register(_hmi_session)
       
   219         self._hmi_session = _hmi_session
   219 
   220 
   220     def onClose(self, wasClean, code, reason):
   221     def onClose(self, wasClean, code, reason):
   221         global svghmi_session_manager
   222         global svghmi_session_manager
       
   223         if self._hmi_session is None : return
   222         self._hmi_session.notify_closed()
   224         self._hmi_session.notify_closed()
   223         svghmi_session_manager.unregister(self._hmi_session)
   225         svghmi_session_manager.unregister(self._hmi_session)
   224         self._hmi_session = None
   226         self._hmi_session = None
   225 
   227 
   226     def onMessage(self, msg, isBinary):
   228     def onMessage(self, msg, isBinary):
   227         global svghmi_watchdog
   229         global svghmi_watchdog
   228         assert(self._hmi_session is not None)
   230         if self._hmi_session is None : return
   229 
       
   230         result = self._hmi_session.onMessage(msg)
   231         result = self._hmi_session.onMessage(msg)
   231         if result == 1 and self.has_watchdog:  # was heartbeat
   232         if result == 1 and self.has_watchdog:  # was heartbeat
   232             if svghmi_watchdog is not None:
   233             if svghmi_watchdog is not None:
   233                 svghmi_watchdog.feed()
   234                 svghmi_watchdog.feed()
   234 
   235