40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
declare module 'ws' {
|
|
import type { IncomingMessage } from 'node:http';
|
|
|
|
export type RawData = Buffer | ArrayBuffer | Buffer[];
|
|
|
|
export class WebSocket {
|
|
static readonly CONNECTING: number;
|
|
static readonly OPEN: number;
|
|
static readonly CLOSING: number;
|
|
static readonly CLOSED: number;
|
|
|
|
readonly readyState: number;
|
|
|
|
constructor(address: string);
|
|
|
|
send(data: string): void;
|
|
close(): void;
|
|
on(event: 'message', listener: (data: RawData) => void): this;
|
|
on(event: 'close' | 'error' | 'open', listener: (...args: any[]) => void): this;
|
|
once(event: 'message', listener: (data: RawData) => void): this;
|
|
once(event: 'close' | 'error' | 'open', listener: (...args: any[]) => void): this;
|
|
off(event: 'message', listener: (data: RawData) => void): this;
|
|
off(event: 'close' | 'error' | 'open', listener: (...args: any[]) => void): this;
|
|
}
|
|
|
|
export class WebSocketServer {
|
|
constructor(options: { noServer: true });
|
|
|
|
on(event: 'connection', listener: (ws: WebSocket, req: IncomingMessage) => void): this;
|
|
emit(event: 'connection', ws: WebSocket, req: IncomingMessage): boolean;
|
|
handleUpgrade(
|
|
req: IncomingMessage,
|
|
socket: unknown,
|
|
head: Buffer,
|
|
callback: (ws: WebSocket) => void,
|
|
): void;
|
|
close(): void;
|
|
}
|
|
}
|