Instantiate the WSController, connect to the WebSocket endpoint and call _open() to create the RTCPeerConnection.
By default, a listener channel is negotiated. To create a streamer channel, pass a stream parameter.
Optionalstream: MediaStreamTrue when connector is closed, in other words when onClose event is fired
Indicate codecs supported, should be set before than onOpen happen
True when connector is opened, in other words when onOpen event is fired
Media Stream description delivred from the server if we are player, or build from the local camera if we are the streamer.
Stream name, for example as+bc3f535f-37f3-458b-8171-b4c5e77a6137
Protected_Protected_Main function which creates the RTCPeerConnection, creates the offer, calls the _sip method, then set the answer and calls onOpen
OptionaliceServer: RTCIceServerProtected_Operates Session Initiation Protocol, this method implement the logic to send the SDP offer to the server and get the SDP answer in response.
SIP Offer
a Promise with SIP Answer as result
Close the connector
Optionalerror: ConnectorErrorthe error reason if is not a proper close
Returns connection info, such as round trip time, requests sent and received, bytes sent and received, and bitrates NOTE: This call is resource-intensive for the CPU.
A promise that resolves to an RTCStatsReport object
Event unsubscription
Name of event without the 'on' prefix (ex: 'log' to 'onLog' event declared)
Event subscription
Name of event without the on prefix (ex: log to onLog event declared)
Subscriber Function
Optionaloptions: { signal?: AbortSignal }Optionalsignal?: AbortSignalOptional AbortSignal to stop this or multiple subscriptions in same time
Event subscription only one time, once time fired it's automatically unsubscribe
Name of event without the on prefix (ex: log to onLog event declared)
Subscriber Function
Optionaloptions: { signal?: AbortSignal }Optionalsignal?: AbortSignalOptional AbortSignal to stop this or multiple subscriptions in same time
Hot-swap a track on the existing RTCPeerConnection without renegotiation.
'audio' | 'video'
A MediaStreamTrack to send, or null to stop sending that kind.
Send a generic command to control the streaming session
type of command
parameters of the command
Sets server properties for packet error (nack) and delayed packet loss (drop) for a streamer controller and fires an onRTPProps event if changed successfully. NOTE: Method can also retrieve current server values if called without arguments.
Optionalnack: numberWaiting period before declaring a packet error
Optionaldrop: numberWaiting period before considering delayed packets as lost
Configure the audio and video track to play for a player controller
Configure the video bitrate on the server side for a streamer controller
video bitrate in bps
Call when connector is closed
Optionalerror: ConnectorErrorerror description on an improper closure
Call to distribute MediaReport
Media report informations
Call when connector is open
MediaStream description provided from the server if we are the player, or build from the local camera if we are the streamer.
Call to distribute PlayingInfos
Current playing informations
Call to distribute video bitrate informations
Current video bitrate
Video bitrate constraint computed by the server
Use WSController to negotiate a new RTCPeerConnection connection with the server using WebSocket custom signaling and keep that connection open for communication.
Example