@ayonli/jsext
Version:
A JavaScript extension package for building strong and modern applications.
32 lines (31 loc) • 1.31 kB
TypeScript
/// <reference types="node" />
import type { BunServer } from "../http/server.ts";
import { ServerOptions, WebSocketConnection, WebSocketHandler, WebSocketLike } from "../ws/base.ts";
import type { IncomingMessage } from "node:http";
export type { ServerOptions, WebSocketConnection, WebSocketHandler, WebSocketLike };
declare const _handler: unique symbol;
declare const _clients: unique symbol;
export declare class WebSocketServer {
protected idleTimeout: number;
protected perMessageDeflate: boolean;
protected [_handler]: WebSocketHandler | undefined;
protected [_clients]: Map<Request, WebSocketConnection>;
constructor(handler?: WebSocketHandler | undefined);
constructor(options: ServerOptions, handler: WebSocketHandler);
upgrade(request: Request): {
socket: WebSocketConnection;
response: Response;
};
upgrade(request: IncomingMessage): {
socket: WebSocketConnection;
};
bunBind(server: BunServer): void;
get bunListener(): {
idleTimeout: number;
perMessageDeflate: boolean;
message: (ws: any, message: string | ArrayBuffer | Uint8Array) => void;
open: (ws: any) => void;
error: (ws: any, error: Error) => void;
close: (ws: any, code: number, reason: string) => void;
};
}