From 615840ac9fe77af405d15f9f9f5a07dcee3c150d Mon Sep 17 00:00:00 2001 From: Sebastian Lohff Date: Sun, 11 May 2025 00:15:31 +0200 Subject: [PATCH] server: use websocket's own broadcast method() I hope this will reduce latency. Initial tests looked a bit better but not great. --- signalsrv/signalsrv.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/signalsrv/signalsrv.py b/signalsrv/signalsrv.py index 89fde8f..f00ab54 100644 --- a/signalsrv/signalsrv.py +++ b/signalsrv/signalsrv.py @@ -4,6 +4,7 @@ import json import logging import re +from websockets.asyncio.connection import broadcast from websockets.asyncio.server import serve __VERSION__ = "0.0.1" @@ -175,9 +176,7 @@ class Client: raise async def _send_to_group(self, group, **kwargs): - async with asyncio.TaskGroup() as tg: - for member in group: - tg.create_task(member._send(ignore_exceptions=True, **kwargs)) + broadcast([c.websocket for c in group], json.dumps(kwargs).encode() + b"\n") async def _send_error(self, msg: str): await self._send(type="error", message=msg)