UNPKG

kuzzle-sdk

Version:
68 lines (67 loc) 2.15 kB
import { BaseProtocolRealtime } from "./abstract/Realtime"; import { JSONObject } from "../types"; import { RequestPayload } from "../types/RequestPayload"; import { DisconnectionOrigin } from "./DisconnectionOrigin"; /** * WebSocket protocol used to connect to a Kuzzle server. */ export default class WebSocketProtocol extends BaseProtocolRealtime { private WebSocketClient; private options; private client; private lasturl; private ping; private waitForPong; private pingIntervalId; private _pingInterval; private _httpProtocol; /** * @param host Kuzzle server hostname or IP * @param options WebSocket connection options * - `autoReconnect` Automatically reconnect to kuzzle after a `disconnected` event. (default: `true`) * - `port` Kuzzle server port (default: `7512`) * - `headers` Connection custom HTTP headers (Not supported by browsers) * - `reconnectionDelay` Number of milliseconds between reconnection attempts (default: `1000`) * - `pingInterval` Number of milliseconds between two pings (default: `2000`) * - `ssl` Use SSL to connect to Kuzzle server. Default `false` unless port is 443 or 7443. */ constructor(host: string, options?: { autoReconnect?: boolean; port?: number; headers?: JSONObject; reconnectionDelay?: number; pingInterval?: number; /** * @deprecated Use `ssl` instead */ sslConnection?: boolean; ssl?: boolean; }); /** * Connect to the websocket server */ _connect(): Promise<void>; connect(): Promise<void>; enableCookieSupport(): void; /** * Sends a payload to the connected server * * @param {Object} payload */ send(request: RequestPayload, options?: JSONObject): void; /** * @override */ clientDisconnected(origin: DisconnectionOrigin): void; /** * @override * * @param {Error} error */ clientNetworkError(error: any): void; /** * Closes the connection */ close(): void; private setupPingPong; }