123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /* eslint-disable @typescript-eslint/no-explicit-any */
- /// <reference types="node" />
- import { Server } from "net";
- import { EventEmitter } from "events";
- import WebSocketLib from "ws";
- import Express from "express";
- declare type MyWebSocket = WebSocketLib & EventEmitter;
- declare type Optional<T> = {
- [P in keyof T]?: (T[P] | undefined);
- };
- declare interface IConfig {
- readonly port?: number;
- readonly expire_timeout?: number;
- readonly alive_timeout?: number;
- readonly key?: string;
- readonly path?: string;
- readonly concurrent_limit?: number;
- readonly allow_discovery?: boolean;
- readonly proxied?: boolean | string;
- readonly cleanup_out_msgs?: number;
- readonly ssl?: {
- key: string;
- cert: string;
- };
- readonly generateClientId?: () => string;
- readonly createWebSocketServer?: (options: WebSocketLib.ServerOptions) => WebSocketLib.Server;
- }
- declare interface IClient {
- getId(): string;
- getToken(): string;
- getSocket(): MyWebSocket | null;
- setSocket(socket: MyWebSocket | null): void;
- getLastPing(): number;
- setLastPing(lastPing: number): void;
- send(data: any): void;
- }
- declare enum MessageType {
- OPEN = "OPEN",
- LEAVE = "LEAVE",
- CANDIDATE = "CANDIDATE",
- OFFER = "OFFER",
- ANSWER = "ANSWER",
- EXPIRE = "EXPIRE",
- HEARTBEAT = "HEARTBEAT",
- ID_TAKEN = "ID-TAKEN",
- ERROR = "ERROR"
- }
- declare interface IMessage {
- readonly type: MessageType;
- readonly src: string;
- readonly dst: string;
- readonly payload?: any;
- }
- declare interface CustomExpress extends Express.Express {
- on(event: string, callback: (...args: any[]) => void): this;
- on(event: 'connection', callback: (client: IClient) => void): this;
- on(event: 'disconnect', callback: (client: IClient) => void): this;
- on(event: 'message', callback: (client: IClient, message: IMessage) => void): this;
- on(event: 'error', callback: (error: Error) => void): this;
- }
- declare function ExpressPeerServer(server: Server, options?: IConfig): CustomExpress;
- declare function PeerServer(options?: Optional<IConfig>, callback?: (server: Server) => void): CustomExpress;
- export { ExpressPeerServer, PeerServer };
|