diff --git a/lnbits/core/wasm_ext/api/websockets.py b/lnbits/core/wasm_ext/api/websockets.py index 96937b047..fd839fe19 100644 --- a/lnbits/core/wasm_ext/api/websockets.py +++ b/lnbits/core/wasm_ext/api/websockets.py @@ -158,6 +158,8 @@ class WasmExtensionWebsocketHub: data: str, ) -> None: for active_conn in self.get_connections(conn.extension_id, conn.item_id): + if active_conn.websocket == conn.websocket: + continue await active_conn.websocket.send_text(data) diff --git a/tests/unit/test_wasm_extension_websockets.py b/tests/unit/test_wasm_extension_websockets.py index 66a8719e7..c7e6b4a7d 100644 --- a/tests/unit/test_wasm_extension_websockets.py +++ b/tests/unit/test_wasm_extension_websockets.py @@ -90,7 +90,7 @@ async def test_wasm_extension_websocket_hub_rate_limits_per_channel(): @pytest.mark.anyio -async def test_wasm_extension_websocket_hub_rebroadcasts_client_messages(): +async def test_wasm_extension_websocket_hub_rebroadcasts_client_messages_to_peers(): hub = WasmExtensionWebsocketHub() sender = FakeWebSocket(received=['{"type":"input","paddle":0.5}']) peer = FakeWebSocket() @@ -100,5 +100,5 @@ async def test_wasm_extension_websocket_hub_rebroadcasts_client_messages(): await hub.listen(conn) - assert sender.sent == ['{"type":"input","paddle":0.5}'] + assert sender.sent == [] assert peer.sent == ['{"type":"input","paddle":0.5}']