Race when the host rejoined during their 30s grace window: the SFU renegotiation that delivered the new mic track arrived over SSE BEFORE the signal-server's peer-joined for the rejoined host. ontrack's streams[0].id (= host's pubkey hex) had no matching member yet, so the track was silently discarded — the listener saw no audio. Cache the unmatched stream by pubkey hex and flush whenever the roster updates (peer-joined, host-promoted, state). When the rejoined host's peer-joined arrives, the queued stream pops out and attaches to their row. Cleared on sfuUnsubscribe so stale streams don't carry across rejoins. |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||