kuzzle-sdk
Version:
Official Javascript SDK for Kuzzle
68 lines (67 loc) • 2.15 kB
TypeScript
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;
}