1.1 KiB
1.1 KiB
ECP-0076: WebTransport-Only Browser Watcher Path
Context
The browser watcher (@moq/watch) races WebTransport against WebSocket fallback by default. In production relay sessions this fallback path correlates with degraded playback behavior (frequent stream resets and unreliable audio despite active subscription).
Decision
In apps/web/app.js, configure each <moq-watch> instance to disable WebSocket fallback before connect:
watch.connection.websocket = { enabled: false }
Also set default watcher volume to full (volume="1") and mount live playback on a <video> element (with controls) inside <moq-watch> so browser audio policies and controls apply predictably. On mount, force audio signals to muted=false and volume=1.
Rationale
- Aligns browser transport with the intended relay mode (WebTransport MoQ).
- Removes fallback-induced variability from live playback behavior.
- Keeps implementation local to web app wiring without forking upstream packages.
Reversibility
- Remove the connection override to restore default fallback behavior.