From: Benjamin Braatz Date: Wed, 11 Aug 2021 08:03:12 +0000 (+0200) Subject: Catch BusException and unregister. X-Git-Tag: v0.3.0~15 X-Git-Url: http://git.graph-it.com/?a=commitdiff_plain;h=f3d4f3cea66dda3bc60edd1a72ac0639b1ebc265;p=graphit%2Fcontrolpi-wsserver.git Catch BusException and unregister. --- diff --git a/controlpi_plugins/wsserver.py b/controlpi_plugins/wsserver.py index 0ede443..b72cb3e 100644 --- a/controlpi_plugins/wsserver.py +++ b/controlpi_plugins/wsserver.py @@ -8,7 +8,8 @@ from websockets.datastructures import Headers from websockets.exceptions import ConnectionClosed from websockets.legacy.server import serve, WebSocketServerProtocol -from controlpi import BasePlugin, MessageBus, Message, MessageTemplate +from controlpi import (BasePlugin, MessageBus, BusException, + Message, MessageTemplate) from typing import Optional, Tuple @@ -72,8 +73,15 @@ class Connection: 'connection closed'}})) for template in message['up filter']: sends.append(template) - self._bus.register(self._name, 'WSServer', sends, - message['down filter'], self._receive) + try: + self._bus.register(self._name, 'WSServer', sends, + message['down filter'], + self._receive) + except BusException: + self._bus.unregister(self._name) + self._bus.register(self._name, 'WSServer', sends, + message['down filter'], + self._receive) open_message = Message(self._name) open_message['event'] = 'connection opened' open_message['address'] = self._address