uyem
Version:
WebRTC client-server SFU application
62 lines (61 loc) • 2.37 kB
TypeScript
import 'webrtc-adapter';
import { RTCInterface, Locale } from '../types/interfaces';
import WS from './ws';
declare class RTC implements Omit<RTCInterface, 'peerConnectionsServer' | 'createRTCServer' | 'handleOfferMessage' | 'addTracksServer'> {
peerConnections: RTCInterface['peerConnections'];
readonly delimiter = "_";
roomLength: number;
connId: string;
muteds: (string | number)[];
localTrackSettings: MediaTrackSettings | null;
lostStreamHandler: (args: {
target: number | string;
roomId: string | number;
connId: string;
eventName: string;
}) => void;
private ws;
localStream: MediaStream | null;
roomId: number | null;
onAddTrack: Record<string, (target: number | string, stream: MediaStream) => void>;
constructor({ ws }: {
ws: WS;
});
setLocalStream(stream: MediaStream | null): void;
createPeerConnection({ roomId, userId, target, connId, onTrack, iceServers, eventName, }: {
roomId: string | number;
userId: string | number;
target: string | number;
connId: string;
onTrack: (args: {
addedUserId: string | number;
stream: MediaStream;
connId: string;
}) => void;
iceServers: RTCConfiguration['iceServers'];
eventName: 'first' | 'check' | 'back';
}): number;
getPeerKeys(): string[];
createRTC: RTCInterface['createRTC'];
getPeerId(roomId: number | string, target: number | string, connId: string): string;
sendNeedReconnect(userId: string | number): void;
checkPeerConnection({ target }: {
target: string | number;
}): string | undefined;
handleIceCandidate: RTCInterface['handleIceCandidate'];
private checkMediaDevice;
getTracks({ locale }: {
locale: Locale.Client;
}): Promise<null | MediaStream>;
addTracks: RTCInterface['addTracks'];
handleCandidateMessage: RTCInterface['handleCandidateMessage'];
handleVideoAnswerMsg: RTCInterface['handleVideoAnswerMsg'];
closeVideoCall: RTCInterface['closeVideoCall'];
closeByPeer: (peerId: string, eventName: string) => void;
onClosedCall: RTCInterface['onClosedCall'];
closeAllConnections(withSelfStream?: boolean): void;
parsePeerId({ target }: {
target: string | number;
}): string[];
}
export default RTC;