hoshii / Exports / WebSocket

WebSocket

Represents a websocket connection to the gateway

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new WebSocket(client)

Create a new Websocket connection

Parameters

NameTypeDescription
clientClientThe client

Overrides

TypedEmitter<WebsocketEvents&gt;.constructor

Defined in

lib/gateway/WebSocket.ts:154open in new window

Properties

_connectTimeout

Private _connectTimeout: Timeout

The timeout for the connection

Defined in

lib/gateway/WebSocket.ts:53open in new window


_heartbeatInterval

Private _heartbeatInterval: Timeout

The interval for the heartbeat

Defined in

lib/gateway/WebSocket.ts:58open in new window


_sharedZLib

Private _sharedZLib: any

The shared zlib instance (currently not supported)

Defined in

lib/gateway/WebSocket.ts:63open in new window


alive

Optional alive: boolean

Whether the websocket is alive

Defined in

lib/gateway/WebSocket.ts:68open in new window


client

client: Client

The client

Defined in

lib/gateway/WebSocket.ts:73open in new window


connected

connected: boolean

Whether the websocket is connected

Defined in

lib/gateway/WebSocket.ts:78open in new window


connectionTimeout

connectionTimeout: number

The timeout for the connection

Defined in

lib/gateway/WebSocket.ts:83open in new window


currReconnectAttempt

currReconnectAttempt: number

The current reconnect attempt

Defined in

lib/gateway/WebSocket.ts:88open in new window


firstWSMessage

firstWSMessage: boolean

Whether the websocket has received the first message

Defined in

lib/gateway/WebSocket.ts:93open in new window


gatewayURL

gatewayURL: string

The URl of the gateway

Defined in

lib/gateway/WebSocket.ts:98open in new window


gatewayVersion

gatewayVersion: string | number

The version of the gateway

Defined in

lib/gateway/WebSocket.ts:103open in new window


heartbeatRequested

heartbeatRequested: boolean

Whether the websocket has requested a heartbeat

Defined in

lib/gateway/WebSocket.ts:108open in new window


lastHeartbeatAck

lastHeartbeatAck: boolean

Whether the websocket has acknowledged the last heartbeat

Defined in

lib/gateway/WebSocket.ts:113open in new window


lastHeartbeatReceived

lastHeartbeatReceived: number

Last time a heartbeat was received

Defined in

lib/gateway/WebSocket.ts:118open in new window


lastHeartbeatSent

lastHeartbeatSent: number

Last time a heartbeat was sent

Defined in

lib/gateway/WebSocket.ts:123open in new window


lastMessageID

Optional lastMessageID: string

The last message ID

Defined in

lib/gateway/WebSocket.ts:128open in new window


latency

latency: number

The latency of the websocket

Defined in

lib/gateway/WebSocket.ts:133open in new window


reconnectInterval

reconnectInterval: number

The interval for reconnecting

Defined in

lib/gateway/WebSocket.ts:138open in new window


replayMissedEvents

Optional replayMissedEvents: boolean

Whether the websocket should replay missed events

Defined in

lib/gateway/WebSocket.ts:143open in new window


ws

ws: WebSocket

The websocket

Defined in

lib/gateway/WebSocket.ts:148open in new window


captureRejectionSymbol

Static Readonly captureRejectionSymbol: typeof captureRejectionSymbol

Inherited from

TypedEmitter.captureRejectionSymbol

Defined in

node_modules/@types/node/events.d.ts:328


captureRejections

Static captureRejections: boolean

Sets or gets the default captureRejection value for all emitters.

Inherited from

TypedEmitter.captureRejections

Defined in

node_modules/@types/node/events.d.ts:333


defaultMaxListeners

Static defaultMaxListeners: number

Inherited from

TypedEmitter.defaultMaxListeners

Defined in

node_modules/@types/node/events.d.ts:334


errorMonitor

Static Readonly errorMonitor: typeof errorMonitor

This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

Installing a listener using this symbol does not change the behavior once an 'error' event is emitted, therefore the process will still crash if no regular 'error' listener is installed.

Inherited from

TypedEmitter.errorMonitor

Defined in

node_modules/@types/node/events.d.ts:327

Accessors

replayEventsCondition

get replayEventsCondition(): boolean

Returns

boolean

Defined in

lib/gateway/WebSocket.ts:192open in new window

Methods

addListener

addListener<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.addListener

Defined in

lib/utils/TypedEmitter.ts:7open in new window


connect

connect(): void | Error

Connect to the websocket

Returns

void | Error

Defined in

lib/gateway/WebSocket.ts:202open in new window


disconnect

disconnect(reconnect?, error?): void

Disconnect from the websocket

Parameters

NameTypeDescription
reconnectbooleanWhether the websocket should reconnect
error?ErrorThe error that caused the disconnect

Returns

void

Defined in

lib/gateway/WebSocket.ts:222open in new window


emit

emit<K>(eventName, ...args): boolean

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventNameK
...argsWebsocketEvents[K]

Returns

boolean

Inherited from

TypedEmitter.emit

Defined in

lib/utils/TypedEmitter.ts:11open in new window

emit<K>(eventName, ...args): boolean

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventNameK
...argsWebsocketEvents[K]

Returns

boolean

Inherited from

TypedEmitter.emit

Defined in

lib/utils/TypedEmitter.ts:45open in new window


eventNames

eventNames(): (string | symbol)[]

Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]

Since

v6.0.0

Returns

(string | symbol)[]

Inherited from

TypedEmitter.eventNames

Defined in

node_modules/@types/node/events.d.ts:669


getMaxListeners

getMaxListeners(): number

Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

Since

v1.0.0

Returns

number

Inherited from

TypedEmitter.getMaxListeners

Defined in

node_modules/@types/node/events.d.ts:526


hardReset

hardReset(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:307open in new window


heartbeat

Private heartbeat(): boolean | void

Returns

boolean | void

Defined in

lib/gateway/WebSocket.ts:330open in new window


initialise

Private initialise(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:351open in new window


listenerCount

listenerCount(eventName): number

Parameters

NameType
eventNamekeyof WebsocketEvents

Returns

number

Inherited from

TypedEmitter.listenerCount

Defined in

lib/utils/TypedEmitter.ts:12open in new window


listeners

listeners(eventName): Function[]

Parameters

NameType
eventNamekeyof WebsocketEvents

Returns

Function[]

Inherited from

TypedEmitter.listeners

Defined in

lib/utils/TypedEmitter.ts:13open in new window


off

off<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.off

Defined in

lib/utils/TypedEmitter.ts:14open in new window


on

on<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.on

Defined in

lib/utils/TypedEmitter.ts:18open in new window


onPacket

Private onPacket(packet): void

Parameters

NameType
packetAnyPacket

Returns

void

Defined in

lib/gateway/WebSocket.ts:404open in new window


onSocketClose

Private onSocketClose(code, r): void

Parameters

NameType
codenumber
rBuffer

Returns

void

Defined in

lib/gateway/WebSocket.ts:456open in new window


onSocketError

Private onSocketError(error): void

Parameters

NameType
errorError

Returns

void

Defined in

lib/gateway/WebSocket.ts:486open in new window


onSocketMessage

Private onSocketMessage(data): void

Parameters

NameType
dataData

Returns

void

Defined in

lib/gateway/WebSocket.ts:494open in new window


onSocketOpen

Private onSocketOpen(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:548open in new window


onSocketPing

Private onSocketPing(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:553open in new window


onSocketPong

Private onSocketPong(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:558open in new window


once

once<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.once

Defined in

lib/utils/TypedEmitter.ts:22open in new window


prependListener

prependListener<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.prependListener

Defined in

lib/utils/TypedEmitter.ts:26open in new window


prependOnceListener

prependOnceListener<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.prependOnceListener

Defined in

lib/utils/TypedEmitter.ts:30open in new window


rawListeners

rawListeners(eventName): Function[]

Parameters

NameType
eventNamekeyof WebsocketEvents

Returns

Function[]

Inherited from

TypedEmitter.rawListeners

Defined in

lib/utils/TypedEmitter.ts:34open in new window


removeAllListeners

removeAllListeners(event?): WebSocket

Parameters

NameType
event?keyof WebsocketEvents

Returns

WebSocket

Inherited from

TypedEmitter.removeAllListeners

Defined in

lib/utils/TypedEmitter.ts:35open in new window


removeListener

removeListener<K>(event, listener): WebSocket

Type parameters

NameType
Kextends keyof WebsocketEvents

Parameters

NameType
eventK
listener(...args: WebsocketEvents[K]) => void

Returns

WebSocket

Inherited from

TypedEmitter.removeListener

Defined in

lib/utils/TypedEmitter.ts:36open in new window


reset

reset(): void

Returns

void

Defined in

lib/gateway/WebSocket.ts:564open in new window


setMaxListeners

setMaxListeners(n): WebSocket

By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

Returns a reference to the EventEmitter, so that calls can be chained.

Since

v0.3.5

Parameters

NameType
nnumber

Returns

WebSocket

Inherited from

TypedEmitter.setMaxListeners

Defined in

node_modules/@types/node/events.d.ts:520


getEventListeners

Static getEventListeners(emitter, name): Function[]

Returns a copy of the array of listeners for the event named eventName.

For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

For EventTargets this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes.

const { getEventListeners, EventEmitter } = require('events');

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  getEventListeners(ee, 'foo'); // [listener]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  getEventListeners(et, 'foo'); // [listener]
}

Since

v15.2.0, v14.17.0

Parameters

NameType
emitterEventEmitter | _DOMEventTarget
namestring | symbol

Returns

Function[]

Inherited from

TypedEmitter.getEventListeners

Defined in

node_modules/@types/node/events.d.ts:299


listenerCount

Static listenerCount(emitter, eventName): number

A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2

Since

v0.9.12

Deprecated

Since v3.2.0 - Use listenerCount instead.

Parameters

NameTypeDescription
emitterEventEmitterThe emitter to query
eventNamestring | symbolThe event name

Returns

number

Inherited from

TypedEmitter.listenerCount

Defined in

node_modules/@types/node/events.d.ts:271


on

Static on(emitter, eventName, options?): AsyncIterableIterator<any>

const { on, EventEmitter } = require('events');

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

An AbortSignal can be used to cancel waiting on events:

const { on, EventEmitter } = require('events');
const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

Since

v13.6.0, v12.16.0

Parameters

NameTypeDescription
emitterEventEmitter-
eventNamestringThe name of the event being listened for
options?StaticEventEmitterOptions-

Returns

AsyncIterableIterator<any>

that iterates eventName events emitted by the emitter

Inherited from

TypedEmitter.on

Defined in

node_modules/@types/node/events.d.ts:254


once

Static once(emitter, eventName, options?): Promise<any[]>

Creates a Promise that is fulfilled when the EventEmitter emits the given event or that is rejected if the EventEmitter emits 'error' while waiting. The Promise will resolve with an array of all the arguments emitted to the given event.

This method is intentionally generic and works with the web platform EventTargetopen in new window interface, which has no special'error' event semantics and does not listen to the 'error' event.

const { once, EventEmitter } = require('events');

async function run() {
  const ee = new EventEmitter();

  process.nextTick(() => {
    ee.emit('myevent', 42);
  });

  const [value] = await once(ee, 'myevent');
  console.log(value);

  const err = new Error('kaboom');
  process.nextTick(() => {
    ee.emit('error', err);
  });

  try {
    await once(ee, 'myevent');
  } catch (err) {
    console.log('error happened', err);
  }
}

run();

The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

const { EventEmitter, once } = require('events');

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.log('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An AbortSignal can be used to cancel waiting for the event:

const { EventEmitter, once } = require('events');

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!

Since

v11.13.0, v10.16.0

Parameters

NameType
emitter_NodeEventTarget
eventNamestring | symbol
options?StaticEventEmitterOptions

Returns

Promise<any[]>

Inherited from

TypedEmitter.once

Defined in

node_modules/@types/node/events.d.ts:194

Static once(emitter, eventName, options?): Promise<any[]>

Parameters

NameType
emitter_DOMEventTarget
eventNamestring
options?StaticEventEmitterOptions

Returns

Promise<any[]>

Inherited from

TypedEmitter.once

Defined in

node_modules/@types/node/events.d.ts:195


setMaxListeners

Static setMaxListeners(n?, ...eventTargets): void

const {
  setMaxListeners,
  EventEmitter
} = require('events');

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);

Since

v15.4.0

Parameters

NameTypeDescription
n?numberA non-negative number. The maximum number of listeners per EventTarget event.
...eventTargets(EventEmitter | _DOMEventTarget)[]-

Returns

void

Inherited from

TypedEmitter.setMaxListeners

Defined in

node_modules/@types/node/events.d.ts:317

Last Updated:
Contributors: Reinhardt