fastify-uws
Version:
A performant HTTP and WebSocket server for Fastify with uWebSockets.
67 lines (66 loc) • 2.41 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
import { Duplex } from 'streamx';
import { default as uws } from 'uWebSockets.js';
import { Server } from './server';
export declare class WebSocket extends EventEmitter {
namespace: Buffer;
connection: uws.WebSocket<any>;
static allocTopic(namespace: Buffer, topic: Buffer | string): string | Buffer;
constructor(namespace: any, connection: any, topics?: {});
get uws(): boolean;
allocTopic(topic: Buffer | string): any;
send(message: uws.RecognizedString, isBinary: boolean, compress: boolean): number | undefined;
publish(topic: Buffer | string, message: uws.RecognizedString, isBinary: boolean, compress: boolean): boolean | undefined;
subscribe(topic: Buffer | string): boolean | undefined;
unsubscribe(topic: Buffer | string): boolean | undefined;
isSubscribed(topic: Buffer | string): boolean;
getTopics(): string[];
close(): void;
end(code: number, shortMessage: uws.RecognizedString): void;
cork(cb: () => void): uws.WebSocket<any> | undefined;
getBufferedAmount(): number;
ping(message: uws.RecognizedString): number | undefined;
}
export declare class WebSocketStream extends Duplex {
socket: WebSocket;
constructor(socket: WebSocket, opts?: {
compress?: boolean | false;
highWaterMark?: number | 16384;
mapReadable?: (packet: {
data: any;
isBinary: boolean;
}) => any;
byteLengthReadable?: (packet: {
data: any;
isBinary: boolean;
}) => number | 1024;
mapWritable?: (data: any) => {
data: any;
isBinary: boolean;
compress: boolean;
};
byteLengthWritable?: (packet: {
data: any;
isBinary: boolean;
compress: boolean;
}) => number | 1024;
});
_open(cb: any): void;
_close(cb: any): void;
_onMessage(data: any, isBinary: any): void;
_write(packet: any, cb: any): void;
}
type WSOptions = {
closeOnBackpressureLimit?: boolean;
compression?: number;
idleTimeout?: number;
maxBackpressure?: number;
maxLifetime?: number;
maxPayloadLength?: number;
sendPingsAutomatically?: boolean;
};
export declare class WebSocketServer extends EventEmitter {
constructor(options?: WSOptions);
addServer(server: Server): void;
}
export {};