Skip to content

BaseConnection

Defined in: packages/core/src/data/streaming/base-connection.ts:105

Abstract base class for streaming connections.

Provides common functionality for all streaming connection types:

  • Connection state management
  • Event emission via EventEmitter
  • Automatic reconnection with exponential backoff
  • State change tracking

Subclasses must implement:

  • connect(): Establish the connection
  • disconnect(): Close the connection
class MyConnection extends BaseConnection {
async connect(): Promise<void> {
this.setState('connecting');
// ... connection logic
this.setState('connected');
this.emit('connect', undefined);
}
disconnect(): void {
// ... disconnection logic
this.handleDisconnect('Manual disconnect');
}
}

new BaseConnection(config): BaseConnection

Defined in: packages/core/src/data/streaming/base-connection.ts:117

Create a new base connection.

ParameterTypeDescription
configConnectionConfigConnection configuration

BaseConnection

EventEmitter.constructor

abstract connect(): Promise<void>

Defined in: packages/core/src/data/streaming/base-connection.ts:150

Establish connection to the server.

Promise<void>

Must be implemented by subclasses. Should:

  1. Set state to ‘connecting’
  2. Establish the connection
  3. Set state to ‘connected’
  4. Emit ‘connect’ event

Error if connection fails


abstract disconnect(): void

Defined in: packages/core/src/data/streaming/base-connection.ts:160

Close the connection.

void

Must be implemented by subclasses. Should:

  1. Close the underlying connection
  2. Call handleDisconnect() with reason

eventNames(): keyof ConnectionEvents[]

Defined in: packages/core/src/utils/event-emitter.ts:211

Get all event names that have registered handlers

keyof ConnectionEvents[]

Array of event names

const events = emitter.eventNames();
console.log('Events with handlers:', events);

EventEmitter.eventNames


getReconnectAttempts(): number

Defined in: packages/core/src/data/streaming/base-connection.ts:200

Get the number of reconnection attempts.

number

Number of reconnect attempts


getState(): ConnectionState

Defined in: packages/core/src/data/streaming/base-connection.ts:175

Get current connection state.

ConnectionState

Current state

const state = connection.getState();
if (state === 'connected') {
// Connection is ready
}

hasListeners<K>(event): boolean

Defined in: packages/core/src/utils/event-emitter.ts:228

Check if an event has any registered handlers

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
eventKEvent name

boolean

True if the event has at least one handler

if (emitter.hasListeners('message')) {
emitter.emit('message', { text: 'Hello' });
}

EventEmitter.hasListeners


isConnected(): boolean

Defined in: packages/core/src/data/streaming/base-connection.ts:191

Check if connection is currently connected.

boolean

True if connected

if (connection.isConnected()) {
connection.send(data);
}

listenerCount<K>(event): number

Defined in: packages/core/src/utils/event-emitter.ts:195

Get the number of handlers registered for an event

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
eventKEvent name

number

Number of registered handlers

const count = emitter.listenerCount('message');
console.log(`${count} handlers registered`);

EventEmitter.listenerCount


off<K>(event, handler): void

Defined in: packages/core/src/utils/event-emitter.ts:120

Remove an event handler

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
eventKEvent name
handlerEventHandler<ConnectionEvents[K]>Handler function to remove

void

const handler = (data) => console.log(data);
emitter.on('message', handler);
emitter.off('message', handler);

EventEmitter.off


on<K>(event, handler): () => void

Defined in: packages/core/src/utils/event-emitter.ts:65

Register an event handler

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
eventKEvent name to listen for
handlerEventHandler<ConnectionEvents[K]>Callback function to invoke when event is emitted

Unsubscribe function that removes this specific handler

() => void

const unsubscribe = emitter.on('message', (data) => {
console.log(data.text);
});
// Later, to unsubscribe:
unsubscribe();

EventEmitter.on


once<K>(event, handler): void

Defined in: packages/core/src/utils/event-emitter.ts:95

Register a one-time event handler

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
eventKEvent name to listen for
handlerEventHandler<ConnectionEvents[K]>Callback function to invoke once

void

The handler will be automatically removed after being invoked once.

emitter.once('connect', () => {
console.log('Connected!');
});

EventEmitter.once


removeAllListeners<K>(event?): void

Defined in: packages/core/src/utils/event-emitter.ts:175

Remove all handlers for an event, or all handlers for all events

Type Parameter
K extends keyof ConnectionEvents
ParameterTypeDescription
event?KOptional event name. If omitted, removes all handlers for all events.

void

// Remove all handlers for 'message' event
emitter.removeAllListeners('message');
// Remove all handlers for all events
emitter.removeAllListeners();

EventEmitter.removeAllListeners