From 0dcb9f6b2d9629ca4e41e78cd7aa61ff5d80f714 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 13 Aug 2020 14:51:07 +0200 Subject: [PATCH] Unregister / remove subscriber if reconnection didn't work. Partial fix from #15. --- 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 4e4f38a..11ba02e 100644 --- a/src/signaling/mcu_janus.go +++ b/src/signaling/mcu_janus.go @@ -1078,6 +1078,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 }