async def _handler(self, websocket: WebSocketServerProtocol,
path: str) -> None:
connection = Connection(self.bus, websocket)
- try:
- await connection.run()
- except asyncio.CancelledError:
- pass
+ await connection.run()
async def _process_request(self, path: str,
request_headers: Headers) -> Response:
async def run(self) -> None:
"""Set up websocket server."""
- serving = False
- while not serving:
+ while True:
try:
- await serve(self._handler,
- host=self._host,
- port=self._port,
- process_request=self._process_request)
- serving = True
+ async with serve(self._handler,
+ host=self._host,
+ port=self._port,
+ process_request=self._process_request):
+ print(f"WSServer '{self.name}'"
+ f" serving on port {self._port}.")
+ await asyncio.Future()
except OSError:
await asyncio.sleep(1)
- print(f"WSServer '{self.name}' serving on port {self._port}.")