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 |