-
Notifications
You must be signed in to change notification settings - Fork 128
Open
Description
We are having difficulties managing track SIDs in scenarios where a full reconnect occurs. During a reconnect, tracks are re-published with new SID's, which prevents us from call UnpublishTrack on specific tracks after the full-reconnect. Because after a full reconnect, the application’s previously stored SID is no longer valid, giving an errors when attempting to unpublish the track.
Usual Flow (No Reconnect):
- Video track is published with SID_A. Our application stores SID_A. ✅
- Time passes. ⏰
- The application calls
UnpublishTrack(SID_A)
to stop streaming the video track. ✅
Flow with Full Reconnect:
- Video track is published with SID_A. Our application stores SID_A. ✅
- Time passes. ⏰
- Full reconnect occurs, handled completely by the Go SDK. The video keeps streaming, but a new track SID is assigned. ✅
- Time passes. ⏰
- The application calls
UnpublishTrack(SID_A)
to stop streaming the video track but receives an error: "could not find track." ❌
With the amazing help of @boks1971 and 15f576a we are now listening for LocalTrackPublished events to update our SIDs after a full reconnect. In the next few days we will find out if this is stable
Some ideas to improve this process for the future:
- Document the fact that SID's change across full-reconnects, and document how to use
LocalTrackPublished
together with.UnpublishTrack()
. Maybe even an example? - Provide a method similar to
UnpublishTrack
that takes some kind of unique track reference which is consistent across reconnects.
Metadata
Metadata
Assignees
Labels
No labels