UNPKG

uyem

Version:
111 lines 5.02 kB
/****************************************************************************************** * Repository: https://github.com/kolserdav/werift-sfu-react.git * File name: rtc.ts * Author: Sergey Kolmiller * Email: <uyem.ru@gmail.com> * License: MIT * License text: See in LICENSE file * Copyright: kolserdav, All rights reserved (c) * Create Date: Wed Aug 24 2022 14:14:09 GMT+0700 (Krasnoyarsk Standard Time) ******************************************************************************************/ /// <reference types="node" /> import * as werift from 'werift'; import { RTCInterface, MessageType, SendMessageArgs, RoomUser, RoomList, Command } from '../types/interfaces'; import WS from './ws'; import DB from './db'; declare type OnChangeVideoTrack = (args: { roomId: string | number; command: Command; target: string | number; }) => void; export declare type OnRoomConnect = (args: { roomId: string | number; userId: string | number; roomUsers: RoomUser[]; }) => void; export declare type OnRoomOpen = (args: { roomId: string | number; ownerId: string | number; }) => void; declare class RTC extends DB implements Omit<RTCInterface, 'peerConnections' | 'createRTC' | 'handleVideoAnswerMsg' | 'addTracks'> { peerConnectionsServer: RTCInterface['peerConnectionsServer']; readonly delimiter = "_"; rooms: Record<string | number, RoomUser[]>; ssrcIntervals: Record<string, NodeJS.Timer>; muteds: RoomList; offVideo: RoomList; askeds: RoomList; adminMuteds: RoomList; banneds: Record<string, RoomUser[]>; muteForAll: Record<string, boolean>; onRoomConnect: OnRoomConnect | undefined; onRoomDisconnect: OnRoomConnect | undefined; onChangeVideoTrack: OnChangeVideoTrack | undefined; onChangeMute: OnChangeVideoTrack | undefined; readonly icePortRange: [number, number] | undefined; ws: WS; streams: Record<string, Record<string, werift.MediaStreamTrack[]>>; constructor({ ws, prisma }: { ws: WS; prisma: DB['prisma']; }); getPeerId(userId: number | string, target: number | string, connId: string): string; closePeerConnectionHandler({ id, data: { target, roomId }, connId, }: SendMessageArgs<MessageType.GET_CLOSE_PEER_CONNECTION>): void; createRTCServer: RTCInterface['createRTCServer']; getRevPeerId(peerId: string): { peerId: string; userId: string; target: string; connId: string; }; handleIceCandidate: RTCInterface['handleIceCandidate']; getVideoTrackHandler: ({ id, data: { command, target, userId }, }: SendMessageArgs<MessageType.GET_VIDEO_TRACK>) => void; handleCandidateMessage: RTCInterface['handleCandidateMessage']; handleOfferMessage: RTCInterface['handleOfferMessage']; sendCloseMessages({ roomId, userId, }: { roomId: string | number; userId: string | number; }): void; private deleteRoomItem; getToAdminHandler({ data: { target, userId, command }, id, connId, }: SendMessageArgs<MessageType.GET_TO_ADMIN>): Promise<void>; private getStreamConnId; private getPeerConnId; getKeysStreams(roomId: string | number): string[]; addTracksServer: RTCInterface['addTracksServer']; private cleanStream; closeVideoCall: RTCInterface['closeVideoCall']; addUserToRoom({ userId, roomId, onRoomOpen, isPublic, }: { userId: number | string; roomId: number | string; onRoomOpen?: OnRoomOpen; isPublic: boolean; }): Promise<{ error: 1 | 0; isOwner: boolean; }>; getRoomLenght(): number; handleGetRoomMessage({ message, port, cors, onRoomConnect, onRoomOpen, }: { message: SendMessageArgs<MessageType.GET_ROOM>; port: number; cors: string; onRoomConnect?: OnRoomConnect; onRoomOpen?: OnRoomOpen; }): Promise<void>; onClosedCall: RTCInterface['onClosedCall']; getPeerConnectionKeys(roomId: string | number): string[]; cleanDuplicateConnections({ roomId, userId, target, }: { roomId: string; userId: string; target: string; }): void; cleanConnections(roomId: string, userId: string): void; getMuteHandler({ id, data: { muted, roomId } }: SendMessageArgs<MessageType.GET_MUTE>): void; getMuteForAllHandler: ({ id, data: { value }, }: SendMessageArgs<MessageType.GET_MUTE_FOR_ALL>) => void; setAskedFloorHandler: ({ id, data: { userId, command }, }: SendMessageArgs<MessageType.GET_ASK_FLOOR>) => void; getToMuteHandler({ id: roomId, data: { target }, }: SendMessageArgs<MessageType.GET_TO_MUTE>): void; handleGetToBan({ id: roomId, data: { target, userId }, }: SendMessageArgs<MessageType.GET_TO_BAN>): Promise<void>; handleGetToUnMute({ id: roomId, data: { target }, }: SendMessageArgs<MessageType.GET_TO_UNMUTE>): void; handleGetToUnBan({ id: roomId, data: { target, userId }, }: SendMessageArgs<MessageType.GET_TO_UNBAN>): void; } export default RTC; //# sourceMappingURL=rtc.d.ts.map