@epicgames-ps/lib-pixelstreamingfrontend-ue5.4
Version:
Frontend library for Unreal Engine 5.4 Pixel Streaming
106 lines (105 loc) • 4.07 kB
TypeScript
import * as MessageReceive from './MessageReceive';
import * as MessageSend from './MessageSend';
import { SignallingProtocol } from './SignallingProtocol';
declare global {
interface WebSocket {
onmessagebinary?(event?: MessageEvent): void;
}
}
/**
* The controller for the WebSocket and all associated methods
*/
export declare class WebSocketController {
WS_OPEN_STATE: number;
webSocket: WebSocket;
onOpen: EventTarget;
onClose: EventTarget;
signallingProtocol: SignallingProtocol;
constructor();
/**
* Connect to the signaling server
* @param connectionURL - The Address of the signaling server
* @returns - If there is a connection
*/
connect(connectionURL: string): boolean;
/**
* Handles what happens when a message is received in binary form
* @param event - Message Received
*/
handleOnMessageBinary(event: MessageEvent): void;
/**
* Handles what happens when a message is received
* @param event - Message Received
*/
handleOnMessage(event: MessageEvent): void;
/**
* Handles when the Websocket is opened
* @param event - Not Used
*/
handleOnOpen(event: Event): void;
/**
* Handles when there is an error on the websocket
* @param event - Error Payload
*/
handleOnError(): void;
/**
* Handles when the Websocket is closed
* @param event - Close Event
*/
handleOnClose(event: CloseEvent): void;
requestStreamerList(): void;
sendSubscribe(streamerid: string): void;
sendUnsubscribe(): void;
sendWebRtcOffer(offer: RTCSessionDescriptionInit, extraParams: MessageSend.ExtraOfferParameters): void;
sendWebRtcAnswer(answer: RTCSessionDescriptionInit, extraParams: MessageSend.ExtraAnswerParameters): void;
sendWebRtcDatachannelRequest(): void;
sendSFURecvDataChannelReady(): void;
/**
* Sends an RTC Ice Candidate to the Server
* @param candidate - RTC Ice Candidate
*/
sendIceCandidate(candidate: RTCIceCandidate): void;
/**
* Closes the Websocket connection
*/
close(): void;
/**
* The Message Contains the payload of the peer connection options used for the RTC Peer hand shake
* @param messageConfig - Config Message received from he signaling server
*/
onConfig(messageConfig: MessageReceive.MessageConfig): void;
/**
* The Message contains all the ids of streamers available on the server.
* @param messageStreamerList - The message with the list of the available streamer ids.
*/
onStreamerList(messageStreamerList: MessageReceive.MessageStreamerList): void;
/**
* The Message contains the new id of a subscribed to streamer.
* @param message - Message conaining the new id of the streamer.
*/
onStreamerIDChanged(message: MessageReceive.MessageStreamerIDChanged): void;
/**
* @param iceCandidate - Ice Candidate sent from the Signaling server server's RTC hand shake
*/
onIceCandidate(iceCandidate: RTCIceCandidateInit): void;
/**
* Event is fired when the websocket receives the answer for the RTC peer Connection
* @param messageAnswer - The RTC Answer payload from the signaling server
*/
onWebRtcAnswer(messageAnswer: MessageReceive.MessageAnswer): void;
/**
* Event is fired when the websocket receives the offer for the RTC peer Connection
* @param messageOffer - The sdp offer
*/
onWebRtcOffer(messageOffer: MessageReceive.MessageOffer): void;
/**
* Event is fired when the websocket receives the data channels for the RTC peer Connection from the SFU
* @param messageDataChannels - The data channels details
*/
onWebRtcPeerDataChannels(messageDataChannels: MessageReceive.MessagePeerDataChannels): void;
/**
* Event is fired when the websocket receives the an updated player count from cirrus
* @param MessagePlayerCount - The new player count
*/
onPlayerCount(playerCount: MessageReceive.MessagePlayerCount): void;
}