From b22d9076a3df0920530a396086c12956bcd2067d Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Tue, 30 Jun 2020 16:20:30 +0200 Subject: [PATCH] Unregister subscriber if "joinRoom" reconnect didn't work. This will cause a new subscriber object to be created/connected if the client retries the request. --- src/signaling/mcu_janus.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/signaling/mcu_janus.go b/src/signaling/mcu_janus.go index 08ea2af..eca0110 100644 --- a/src/signaling/mcu_janus.go +++ b/src/signaling/mcu_janus.go @@ -1013,6 +1013,10 @@ retry: var roomId uint64 handle, roomId, err = p.mcu.getOrCreateSubscriberHandle(ctx, p.publisher, p.streamType) if err != nil { + // Reconnection didn't work, need to unregister/remove subscriber + // so a new object will be created if the request is retried. + p.mcu.unregisterClient(p) + p.listener.SubscriberClosed(p) callback(fmt.Errorf("Already connected as subscriber for %s, error during re-joining: %s", p.streamType, err), nil) return }