UNPKG

clusterws

Version:

ClusterWS - lightweight, fast and powerful framework for building scalable WebSocket applications in Node.js.

198 lines (180 loc) 6.52 kB
// Generated by dts-bundle v0.7.3 // Dependencies for this module: // ../http // ../https import * as HTTP from 'http'; import * as HTTPS from 'https'; export default class ClusterWS { static cWebSocket: any; static cWebSocketServer: any; constructor(configurations: Configurations); } export function BrokerClient(url: string, broadcaster: CustomObject, tries?: number, reconnected?: boolean): void; export function GlobalBrokerServer(hrScale: HorizontalScaleOptions): void; export function InternalBrokerServer(port: number, securityKey: string, horizontalScaleOptions: any): void; export class WebSocket { OPEN: number; CLOSED: number; isAlive: boolean; external: CustomObject; executeOn: string; onping: Listener; onpong: Listener; internalOnOpen: Listener; internalOnError: Listener; internalOnClose: Listener; internalOnMessage: Listener; constructor(uri: string, external?: CustomObject, isServeClient?: boolean); readonly readyState: number; on(eventName: string, listener: Listener): this; ping(message?: Message): void; send(message: Message, options?: CustomObject): void; terminate(): void; close(code: number, reason: string): void; } export class WebSocketsServer extends EventEmitterSingle { noDelay: boolean; upgradeReq: any; httpServer: HTTP.Server; serverGroup: any; pingIsAppLevel: boolean; upgradeCallback: any; lastUpgradeListener: boolean; constructor(options: CustomObject, callback?: Listener); heartbeat(interval: number, appLevel?: boolean): void; } export const noop: any; export const OPCODE_TEXT: number; export const OPCODE_PING: number; export const OPCODE_BINARY: number; export const APP_PONG_CODE: number; export const APP_PING_CODE: any; export const PERMESSAGE_DEFLATE: number; export const DEFAULT_PAYLOAD_LIMIT: number; export const native: any; export class EventEmitterMany { events: CustomObject; subscribe(event: string, listener: (event: string, ...args: any[]) => void, token: string): void; publish(event: string, ...args: any[]): void; unsubscribe(event: string, token: string): void; exist(event: string): boolean; changeChannelStatusInBroker(event: string, eventType: string): void; } export class EventEmitterSingle { on(event: 'connection', listener: (socket: Socket) => void): void; on(event: string, listener: Listener): void; emit(event: string, message: Message): void; emit(event: string, ...args: any[]): void; removeEvents(): void; } export class Socket { worker: Worker; socket: WebSocket; id: string; constructor(worker: Worker, socket: WebSocket); on(event: 'error', listener: (err: Error) => void): void; on(event: 'disconnect', listener: (code?: number, reason?: string) => void): void; on(event: string, listener: Listener): void; send(event: string, message: Message, eventType?: string): void; disconnect(code?: number, reason?: string): void; terminate(): void; } export class WSServer extends EventEmitterSingle { channels: EventEmitterMany; middleware: CustomObject; constructor(); setMiddleware(name: 'onPublish', listener: (channel: string, message: Message) => void): void; setMiddleware(name: 'onSubscribe', listener: (socket: Socket, channel: string, next: Listener) => void): void; setMiddleware(name: 'onUnsubscribe', listener: (socket: Socket, channel: string) => void): void; setMiddleware(name: 'verifyConnection', listener: (info: CustomObject, next: Listener) => void): void; setMiddleware(name: 'onMessageReceive', listener: (socket: Socket, message: Message, next: Listener) => void): void; setMiddleware(name: 'onMessageFromWorker', listener: (message: Message) => void): void; setMiddleware(name: 'onChannelClose' | 'onChannelOpen', listener: (channel: string) => void): void; setWatcher(channelName: string, listener: Listener): void; removeWatcher(channelName: string): void; publishToWorkers(message: Message): void; publish(channel: string, message: Message, tries?: number): void; broadcastMessage(_: string, message: Message): void; clearBroker(url: string): void; setBroker(br: WebSocket, url: string): void; } export class Worker { options: Options; id: number; wss: WSServer; server: HTTP.Server | HTTPS.Server; constructor(options: Options, id: number, securityKey: string); } export function masterProcess(options: Options): void; export function workerProcess(options: Options): void; export function keysOf(object: CustomObject): string[]; export function logError<T>(data: T): any; export function logReady<T>(data: T): any; export function logWarning<T>(data: T): any; export function isFunction<T>(fn: T): boolean; export function generateKey(length: number): string; export type Message = any; export type Listener = (...args: any[]) => void; export type WorkerFunction = () => void; export type CustomObject = { [propName: string]: any; }; export type TlsOptions = { ca?: string; pfx?: string; key?: string; cert?: string; passphrase?: string; }; export type HorizontalScaleOptions = { masterOptions?: { port: number; tlsOptions?: TlsOptions; }; brokersUrls?: string[]; key?: string; serverId?: string; }; export type Configurations = { worker: WorkerFunction; port?: number; host?: string; workers?: number; brokers?: number; useBinary?: boolean; brokersPorts?: number[]; tlsOptions?: TlsOptions; pingInterval?: number; restartWorkerOnFail?: boolean; horizontalScaleOptions?: HorizontalScaleOptions; encodeDecodeEngine?: EncodeDecodeEngine; }; export type Options = { worker: WorkerFunction; port: number; host: string; workers: number; brokers: number; useBinary: boolean; brokersPorts: number[]; tlsOptions: TlsOptions | false; pingInterval: number; restartWorkerOnFail: boolean; horizontalScaleOptions: HorizontalScaleOptions | false; encodeDecodeEngine: EncodeDecodeEngine | false; }; export type Brokers = { brokers: CustomObject; nextBroker: number; brokersKeys: string[]; brokersAmount: number; }; export type BrokerClients = { sockets: CustomObject; length: number; keys: string[]; }; export type EncodeDecodeEngine = { encode: (message: Message) => Message; decode: (message: Message) => Message; };