UNPKG

@appsensorlike/appsensorlike_websocket

Version:

Base class/types utilized by websocket client/server

50 lines (49 loc) 2.98 kB
/// <reference types="node" resolution-mode="require"/> import { ActionRequest } from "../appsensor-websocket.js"; import { IValidateInitialize } from "@appsensorlike/appsensorlike/core/core.js"; import { HttpS2Server, HttpS2ServerConfig } from "@appsensorlike/appsensorlike/http/HttpS2Server.js"; import { IncomingMessage } from "http"; import WebSocket, { PerMessageDeflateOptions, WebSocketServer } from "ws"; declare class WebSocketServerConfig extends HttpS2ServerConfig implements IValidateInitialize { private static DEFAULT_PORT; websocketServer?: { path?: string | undefined; clientTracking?: boolean | undefined; perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined; maxPayload?: number | undefined; skipUTF8Validation?: boolean | undefined; }; clientApplicationIdentificationHeaderName?: string; checkValidInitialize(): void; } interface WebSocketAdditionalProperties { isAlive?: boolean; clientApplication?: string; remoteAddress?: string; uuid?: string; } type WebSocketExt = WebSocket.WebSocket & WebSocketAdditionalProperties; declare class AppSensorWebSocketServer extends HttpS2Server { protected static ACCESS_DENIED_CLOSE_CODE: number; protected config: WebSocketServerConfig; protected websocketServer: WebSocketServer | null; protected websocketServerOptions: WebSocket.ServerOptions; constructor(config: WebSocketServerConfig, handleProtocols?: (protocols: Set<string>, request: IncomingMessage) => string | false); protected getConfiguration(): HttpS2ServerConfig; protected attachToServer(): Promise<void>; protected isConnectionAllowedWrapper(me: AppSensorWebSocketServer): (ws: WebSocketExt) => boolean; protected isConnectionAllowed(ws: WebSocketExt): boolean; protected isActionAuthorized(ws: WebSocketExt, request: ActionRequest): boolean; private ping; protected onMessageWrapper(me: AppSensorWebSocketServer): (this: WebSocketExt, data: WebSocket.RawData, isBinary: boolean) => void; protected onClientRequest(ws: WebSocketExt, request: ActionRequest): void; closeServer(): Promise<void>; protected broadcast(actionName: string, result: number | Object | null | string, resultElementClass: string | null): void; protected static getParameter(request: ActionRequest, paramName: string): string | Object | undefined; protected static reportMissingParameter(ws: WebSocket, request: ActionRequest, paramName: string): void; protected static reportError(ws: WebSocket, request: ActionRequest, error: any): void; protected static reportAccessDenied(ws: WebSocket): void; protected static reportUnAuthorizedAction(ws: WebSocket, request: ActionRequest): void; protected static sendResult(ws: WebSocket, request: ActionRequest, result: number | Object | null | string, resultElementClass: string | null): void; } export { AppSensorWebSocketServer, WebSocketServerConfig, WebSocketExt };