fcr-core
Version:
Core APIs for building online scenes
48 lines (47 loc) • 1.66 kB
TypeScript
import { FcrPeerSessionParamsSchema } from '../schema';
import { FcrSessionBase, FcrSessionResponse } from '../type';
export interface FcrPeerSessionControl {
/**
* Start a new peer session.
*/
startPeerSession(params: FcrPeerSessionParams): Promise<string>;
/**
* Stop the current peer session.
*/
stopPeerSession(sessionId: string): void;
/**
* Accept an incoming peer session.
*/
acceptPeerSession(session: FcrPeerSession, cause?: Record<string, unknown>): Promise<void>;
/**
* Reject an incoming peer session.
*/
rejectPeerSession(session: FcrPeerSession, cause?: Record<string, unknown>): Promise<void>;
/**
* Add an observer to the peer session control.
*/
addObserver(observer: FcrPeerSessionObserver): void;
/**
* Remove an observer from the peer session control.
*/
removeObserver(observer: FcrPeerSessionObserver): void;
}
export interface FcrPeerSessionObserver {
/**
* Called when a new peer session is received.
* @param session The received peer session.
*/
onPeerSessionReceived?(session: FcrPeerSession): void;
/**
* Called when a peer session is accepted.
* @param session The response of the accepted peer session.
*/
onPeerSessionAccepted?(session: FcrSessionResponse): void;
/**
* Called when a peer session is rejected.
* @param session The response of the rejected peer session.
*/
onPeerSessionRejected?(session: FcrSessionResponse): void;
}
export type FcrPeerSessionParams = FcrPeerSessionParamsSchema;
export type FcrPeerSession = FcrSessionBase & {};