Class: shaka.msf.RequestIdSession

Constructor

new RequestIdSession(webTransportnon-null, controlStreamnon-null, dialectnon-null, confignon-null)

Parameters:
Name Type Description
webTransport WebTransport
controlStream shaka.msf.IControlStream
dialect shaka.extern.MsfDialect
config shaka.extern.MsfManifestConfiguration
Implements:
Source:

Members

fetchCallbacks_ :Map<bigint, !shaka.msf.Utils.ObjectCallback>

Type:
Source:

isClosing_ :boolean

Type:
  • boolean
Source:

messageHandlers_ :Map<shaka.msf.Utils.MessageType, Map<bigint, shaka.msf.Utils.MessageHandler>>

Pending requests, keyed by the kind of response expected and then by the Request ID that will carry it.
Type:
Source:

nextRequestId_ :bigint

Type:
  • bigint
Source:

publishNamespaceCallbacks_ :Set<function(Array<string>)>

Type:
  • Set<function(Array<string>)>
Source:

webTransport_ :WebTransport

Type:
  • WebTransport
Source:

Methods

close(codeopt, reasonopt) → {Promise}

Closes the underlying transport.
Parameters:
Name Type Attributes Default Description
code number <optional>
0
reason string <optional>
Implements:
Source:
Returns:
Type
Promise

configure(confignon-null)

Parameters:
Name Type Description
config shaka.extern.MsfManifestConfiguration
Implements:
Source:

fetch(namespace, trackName, callback) → {Promise}

Send a FETCH request for a track and register a callback for the response data. Returns a promise that resolves when the FETCH_OK is received.
Parameters:
Name Type Description
namespace Array<string>
trackName string
callback shaka.msf.Utils.ObjectCallback
Implements:
Source:
Returns:
Type
Promise

getNextRequestId_() → {bigint}

Get the next request ID. Client request IDs are even numbers starting at 0, incrementing by 2.
Source:
Returns:
Type
bigint

handleFetchStream_(readernon-null) → {Promise}

Handle an incoming FETCH_HEADER stream.
Parameters:
Name Type Description
reader shaka.msf.Reader
Source:
Returns:
Type
Promise

handleIncomingStream_(streamnon-null) → {Promise}

Handle an incoming unidirectional stream
Parameters:
Name Type Description
stream ReadableStream
Source:
Returns:
Type
Promise

handlePublishDone_(requestId)

Handle PublishDone message (end of stream for a track)
Parameters:
Name Type Description
requestId bigint
Source:

handlePublishNamespace_(msg) → {Promise}

The relay announces namespaces it can serve. Acknowledge, then tell anyone listening.
Parameters:
Name Type Description
msg shaka.msf.Utils.PublishNamespace
Source:
Returns:
Type
Promise

handleSubgroupStream_(readernon-null, streamType) → {Promise}

Handle a SUBGROUP_HEADER stream with automatic buffering and retry.
Parameters:
Name Type Description
reader shaka.msf.Reader
streamType bigint
Source:
Returns:
Type
Promise

hasDefaultPriority_(streamType) → {boolean}

Draft-16: returns true when the DEFAULT_PRIORITY bit (0x20) is set
Parameters:
Name Type Description
streamType bigint
Source:
Returns:
Type
boolean

isSubgroupStreamType_(streamType) → {boolean}

Check if a stream type is a valid SUBGROUP_HEADER type. Draft-11: 0x08-0x0D Draft-14: 0x10-0x15, 0x18-0x1D Draft-16: adds 0x30-0x35, 0x38-0x3D (with DEFAULT_PRIORITY bit 0x20)
Parameters:
Name Type Description
streamType bigint
Source:
Returns:
Type
boolean

listenForControlMessages_() → {Promise}

Reads control messages until the session closes, answering the ones the session handles itself and routing the rest to whoever is waiting on that Request ID.
Source:
Returns:
Type
Promise

notifyCallbacks_(trackAlias, obj)

Notify all callbacks registered for a track
Parameters:
Name Type Description
trackAlias bigint
obj shaka.msf.Utils.MOQObject
Source:

onNamespacePublished(callback) → {function}

Registers a callback for namespaces the peer announces it can serve.
Parameters:
Name Type Description
callback function
Implements:
Source:
Returns:
Unregisters the callback.
Type
function

registerMessageHandler_(kind, requestId, handler) → {function()}

Registers a one-shot handler for the response to a request.
Parameters:
Name Type Description
kind shaka.msf.Utils.MessageType
requestId bigint
handler shaka.msf.Utils.MessageHandler
Source:
Returns:
Unregisters the handler.
Type
function()

release()

Request that this object release all internal references.
Inherited From:
Implements:
Source:

startListeningForStreams_() → {Promise}

Start listening for incoming unidirectional streams
Source:
Returns:
Type
Promise

subscribe(namespace, trackName, callback) → {Promise<bigint>}

Subscribe to a track by namespace and track name Returns the track alias that can be used to unsubscribe later
Parameters:
Name Type Description
namespace Array<string>
trackName string
callback shaka.msf.Utils.ObjectCallback
Implements:
Source:
Returns:
Type
Promise<bigint>

unsubscribe(trackAlias) → {Promise}

Unsubscribe from a track by track alias
Parameters:
Name Type Description
trackAlias bigint
Implements:
Source:
Returns:
Type
Promise