aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
index b877e4d..af90dfc 100644
--- a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
+++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
@@ -7347,6 +7347,13 @@ class WebRTCTransport:
# two slots the whole time. Closing the viewer, the tab or
# the browser all arrive here, so this is the one place
# that covers every way of walking away.
+ #
+ # And the group's peer set forgets it too, as close() does:
+ # otherwise every later broadcast to the group is written
+ # to a closed channel, and every reconnect leaves one more
+ # dead session held until the node restarts.
+ if gone._user_id:
+ gone._unregister_peer()
await gone.shutdown_tasks()
offer = RTCSessionDescription(sdp=offer_sdp, type="offer")