Skip to content

@egain/ai-agent-sdk API Reference - v0.3.2 / Connection

Class: Connection ​

Connection manager with automatic reconnection.

This class wraps a Transport implementation and adds:

  • Connection state management
  • Automatic reconnection with exponential backoff
  • Event forwarding and normalization

The Connection class is transport-agnostic - it can work with any transport that implements the Transport interface (WebSocket, SSE, etc.)

Example

typescript
// Using default WebSocket transport
const conn = new Connection({
  endpoint: 'wss://api.example.com/ws'
});

// Using custom transport
const customTransport = new MyCustomTransport({ endpoint: '...' });
const conn = new Connection({ transport: customTransport });

Hierarchy ​

Table of contents ​

Constructors ​

Methods ​

Constructors ​

constructor ​

• new Connection(config): Connection

Parameters ​

NameType
configConnectionConfig

Returns ​

Connection

Overrides ​

EventEmitter.constructor

Defined in ​

core/connection/Connection.ts:94

• new Connection(endpoint): Connection

Parameters ​

NameType
endpointstring

Returns ​

Connection

Deprecated

Use ConnectionConfig object instead

Overrides ​

EventEmitter<ConnectionEvents>.constructor

Defined in ​

core/connection/Connection.ts:98

Methods ​

getTransport ​

▸ getTransport(): Transport

Get the underlying transport instance

Returns ​

Transport

Defined in ​

core/connection/Connection.ts:154


getTransportType ​

▸ getTransportType(): string

Get the transport type

Returns ​

string

Defined in ​

core/connection/Connection.ts:161


getState ​

▸ getState(): ConnectionState

Get current connection state

Returns ​

ConnectionState

Defined in ​

core/connection/Connection.ts:168


isConnected ​

▸ isConnected(): boolean

Check if connected

Returns ​

boolean

Defined in ​

core/connection/Connection.ts:175


connect ​

▸ connect(): Promise<void>

Connect using the underlying transport

Returns ​

Promise<void>

Defined in ​

core/connection/Connection.ts:182


disconnect ​

▸ disconnect(): void

Disconnect and stop reconnecting

Returns ​

void

Defined in ​

core/connection/Connection.ts:196


send ​

▸ send(data): Promise<void>

Send a message through the transport

Parameters ​

NameType
dataany

Returns ​

Promise<void>

Defined in ​

core/connection/Connection.ts:207


setMaxReconnectAttempts ​

▸ setMaxReconnectAttempts(maxAttempts): void

Set maximum reconnection attempts

Parameters ​

NameType
maxAttemptsnumber

Returns ​

void

Defined in ​

core/connection/Connection.ts:221


setReconnectDelays ​

▸ setReconnectDelays(baseDelay, maxDelay): void

Set reconnection delay parameters

Parameters ​

NameType
baseDelaynumber
maxDelaynumber

Returns ​

void

Defined in ​

core/connection/Connection.ts:228


on ​

▸ on<K>(event, handler): this

Register an event handler.

The handler will be called every time the event is emitted.

Type parameters ​

NameType
Kextends keyof ConnectionEvents

Parameters ​

NameTypeDescription
eventKThe event name to listen for
handlerEventHandler<ConnectionEvents[K]>The function to call when the event is emitted

Returns ​

this

this for method chaining

Example

typescript
agent.on("message", (event) => {
  console.log("Received:", event.payload);
});

Inherited from ​

EventEmitter.on

Defined in ​

core/events/EventEmitter.ts:64


once ​

▸ once<K>(event, handler): this

Register a one-time event handler.

The handler will be called only once, then automatically removed.

Type parameters ​

NameType
Kextends keyof ConnectionEvents

Parameters ​

NameTypeDescription
eventKThe event name to listen for
handlerEventHandler<ConnectionEvents[K]>The function to call when the event is emitted

Returns ​

this

this for method chaining

Example

typescript
agent.once("connected", () => {
  console.log("First connection established!");
});

Inherited from ​

EventEmitter.once

Defined in ​

core/events/EventEmitter.ts:88


off ​

▸ off<K>(event, handler?): this

Remove an event handler.

If no handler is specified, removes all handlers for the event.

Type parameters ​

NameType
Kextends keyof ConnectionEvents

Parameters ​

NameTypeDescription
eventKThe event name
handler?EventHandler<ConnectionEvents[K]>The specific handler to remove (optional)

Returns ​

this

this for method chaining

Example

typescript
const handler = (event) => console.log(event);
agent.on("message", handler);
agent.off("message", handler);

Example

typescript
agent.off("message");

Inherited from ​

EventEmitter.off

Defined in ​

core/events/EventEmitter.ts:117


removeAllListeners ​

▸ removeAllListeners<K>(event?): this

Remove all event handlers

Type parameters ​

NameType
Kextends keyof ConnectionEvents

Parameters ​

NameType
event?K

Returns ​

this

Inherited from ​

EventEmitter.removeAllListeners

Defined in ​

core/events/EventEmitter.ts:180


listenerCount ​

▸ listenerCount<K>(event): number

Get the number of listeners for an event

Type parameters ​

NameType
Kextends keyof ConnectionEvents

Parameters ​

NameType
eventK

Returns ​

number

Inherited from ​

EventEmitter.listenerCount

Defined in ​

core/events/EventEmitter.ts:194

Released under the MIT License.