lisk-framework
Version:
Lisk blockchain application platform
34 lines (33 loc) • 1.09 kB
TypeScript
import * as WebSocket from 'ws';
import { Logger } from '../../logger';
import { NotificationRequest } from '../jsonrpc';
interface WebSocketWithTracking extends WebSocket {
isAlive?: boolean;
id: string;
}
export type WSMessageHandler = (socket: WebSocketWithTracking, message: string) => void;
export declare class WSServer {
server: WebSocket.Server;
private _pingTimer;
private _logger;
private readonly _port;
private readonly _host?;
private readonly _path;
private readonly _subscriptions;
private readonly _accessControlAllowOrigin;
constructor(options: {
port: number;
host?: string;
path: string;
accessControlAllowOrigin?: string;
});
start(logger: Logger, messageHandler: WSMessageHandler, httpServer?: WebSocket.ServerOptions['server']): WebSocket.Server;
stop(): void;
broadcast(message: NotificationRequest): void;
private _handleConnection;
private _handleHeartbeat;
private _setUpPing;
private _handleSubscription;
private _handleUnsubscription;
}
export {};