Snapshot of active subscriptions keyed by
chanId.
Optional[capture
The Symbol.for('nodejs.rejection') method
is called in case a promise rejection happens when
emitting an event and captureRejections is
enabled on the emitter. It is possible to use
events.captureRejectionSymbol in place of
Symbol.for('nodejs.rejection').
import { EventEmitter, captureRejectionSymbol } from 'node:events';
class MyClass extends EventEmitter {
constructor() {
super({ captureRejections: true });
}
[captureRejectionSymbol](err, event, ...args) {
console.log('rejection happened for', event, 'with', err, ...args);
this.destroy(err);
}
destroy(err) {
// Tear the resource down here.
}
}
Authenticate the connection. Bitfinex v1 only accepts
the five
apiKey/authSig/authNonce/authPayload/event
fields — the v2 extensions (filter,
dms, calc) are not part of the
v1 contract.
https://docs.bitfinex.com/v1/reference/ws-auth-authentication
Subscribe to the aggregated book channel
and yield the initial
book_snapshot followed by every
book_update.
Connect to the websocket.
Disconnect from the websocket.
Returns an array listing the events for which the emitter has registered listeners.
import { EventEmitter } from 'node: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) ]
Returns the number of listeners listening for the event
named eventName. If
listener is provided, it will return how
many times the listener is found in the list of the
listeners of the event.
The name of the event being listened for
Optionallistener:
(...args:
any[])
=>
void
The event handler function
Returns a copy of the array of listeners for the event
named eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
Subscribe to the raw (R0) book and yield
raw_book_snapshot followed by
raw_book_update events.
Returns a copy of the array of listeners for the event
named eventName, including any wrappers
(such as those created by .once()).
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
Removes all listeners, or those of the specified
eventName.
It is bad practice to remove listeners added elsewhere
in the code, particularly when the
EventEmitter instance was created by some
other component or module (e.g. sockets or file
streams).
Returns a reference to the EventEmitter, so
that calls can be chained.
OptionaleventName:
string
|
symbol
Removes the specified listener from the
listener array for the event named
eventName.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() will remove, at most, one
instance of a listener from the listener array. If any
single listener has been added multiple times to the
listener array for the specified eventName,
then removeListener() must be called
multiple times to remove each instance.
Once an event is emitted, all listeners attached to it
at the time of emitting are called in order. This
implies that any removeListener() or
removeAllListeners() calls
after emitting and before the last
listener finishes execution will not remove them from
emit() in progress. Subsequent events
behave as expected.
import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
Because listeners are managed using an internal array,
calling this will change the position indexes of any
listener registered after the listener being
removed. This will not impact the order in which
listeners are called, but it means that any copies of
the listener array as returned by the
emitter.listeners() method will need to be
recreated.
When a single function has been added as a handler
multiple times for a single event (as in the example
below), removeListener() will remove the
most recently added instance. In the example the
once('ping') listener is removed:
import { EventEmitter } from 'node:events';
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
Returns a reference to the EventEmitter, so
that calls can be chained.
Send a raw payload to the websocket server.
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
to Infinity (or 0) to indicate
an unlimited number of listeners.
Returns a reference to the EventEmitter, so
that calls can be chained.
Subscribe to the aggregated book channel.
Subscribe to the raw book channel
(precision R0).
Subscribe to the ticker channel.
Subscribe to the trades channel.
Subscribe to ticker and yield every ticker
update for the pair.
Subscribe to trades and yield the initial
trades_snapshot followed by every
trade_executed/trade_updated
live event for the pair.
Unauthenticate the connection.
Unsubscribe from a channel by chanId.
Yield every wallet snapshot/update arriving on the
authenticated channel. The caller is expected to have
called auth() first.
Create WebSocketClient.