every.channel: sanitized baseline
This commit is contained in:
commit
897e556bea
258 changed files with 74298 additions and 0 deletions
|
|
@ -0,0 +1,34 @@
|
|||
# ECP-0057: Direct-Publish Session Reconnect + Busy Listing Semantics
|
||||
|
||||
Status: Draft
|
||||
|
||||
## Problem
|
||||
|
||||
`ec-node direct-publish` (direct WebRTC + CMAF over DataChannel) is currently a 1:1 stream.
|
||||
|
||||
Two concrete issues hurt reliability:
|
||||
|
||||
1. Directory entries can remain visible while a session is already connected, causing new viewers to
|
||||
click "Watch" and silently fail.
|
||||
2. If a viewer disconnects (reload, laptop sleeps, etc), the publisher has no way to accept a new
|
||||
viewer without restarting the process.
|
||||
|
||||
## Proposal
|
||||
|
||||
- Make `direct-publish` a session loop:
|
||||
- Create a fresh PeerConnection offer.
|
||||
- Announce it to the directory.
|
||||
- Wait for one answer.
|
||||
- Stream until send fails / ffmpeg ends.
|
||||
- Restart with a new offer.
|
||||
- Once a session is connected, stop refreshing announcements and quickly expire the directory entry
|
||||
(so the directory reflects joinable streams only).
|
||||
|
||||
This preserves the current 1:1 nature while making reconnection and "send a link" behavior much
|
||||
more robust.
|
||||
|
||||
## Non-Goals (For Now)
|
||||
|
||||
- True 1:many fanout / relaying for direct streams.
|
||||
- Multi-viewer, simultaneous subscriptions to the same publisher connection.
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue