Skip to main content

Module endpoint

Module endpoint 

Source
Expand description

Draft-17 MoQT endpoint.

Major architectural differences from earlier drafts:

  • Unified Setup message (no separate CLIENT_SETUP / SERVER_SETUP).
  • Response messages (SubscribeOk, PublishOk, FetchOk, PublishDone, RequestOk, RequestError) do NOT carry a request_id. Each request opens its own bidirectional stream and its response arrives as the first message on that stream, so the stream itself identifies the request. The transport layer knows which request_id each bidi stream belongs to; callers must supply that request_id via Endpoint::receive_response_on_stream.
  • No Unsubscribe, FetchCancel, MaxRequestId, RequestsBlocked, PublishNamespaceDone, or PublishNamespaceCancel messages.
  • Request-producing messages (Subscribe, Publish, Fetch, PublishNamespace, SubscribeNamespace, TrackStatus, RequestUpdate) gain a required_request_id_delta field.
  • New PublishBlocked message notifies subscribers a publisher is blocked.
  • Namespace and NamespaceDone are unsolicited announcements of namespace suffixes.

Structsยง

Endpoint
FetchTrack ๐Ÿ”’
The track one fetch is for, which the fetchโ€™s own state machine does not hold.
TrackBinding ๐Ÿ”’
A Track Alias the peer has attached to a Full Track Name, and the request whose lifetime the attachment follows.

Enumsยง

BindingKind ๐Ÿ”’
Which of the two sequences Section 5.1 names established the subscription that owns a binding, and so which state machine says whether it still has one.
EndpointError
Errors that can occur during endpoint operations.

Functionsยง

prefixes_overlap ๐Ÿ”’
Whether two namespace prefixes overlap.