0.4.0 • Published 5 months ago
extra-websocket v0.4.0
extra-websocket
Install
npm install --save extra-websocket
# or
yarn add extra-websocket
API
ExtraWebSocket
import { WebSocket, Event as OpenEvent, MessageEvent, ErrorEvent, CloseEvent } from 'ws'
import { Emitter } from '@blackglory/structures'
enum BinaryType {
NodeBuffer
, ArrayBuffer
, Fragments
}
enum State {
Closed
, Connecting
, Connected
, Closing
}
class ExtraWebSocket extends Emitter<{
open: [event: OpenEvent]
message: [event: MessageEvent]
error: [event: ErrorEvent]
close: [event: CloseEvent]
}> {
constructor(createWebSocket: () => WebSocket)
getState(): State
getBinaryType(): BinaryType
setBinaryType(val: BinaryType): void
connect(): Promise<void>
close(code?: number, reason?: string): Promise<void>
send(data: string | ArrayBufferLike | Buffer | TypedArray | DataView): void
ping(): void
}
autoReconnect
function autoReconnect(ws: ExtraWebSocket, timeout?: number): () => void
autoReconnectWithExponentialBackOff
function autoReonnectWithExponentialBackOff(
ws: ExtraWebSocket
, options: {
baseTimeout: number
maxTimeout?: number
factor?: number = 2
jitter?: boolean = true
}
): () => void
startHeartbeat
function startHeartbeat(ws: ExtraWebSocket, interval: number): () => void