Skip to content

@egain/ai-agent-sdk API Reference - v0.1.1 / 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.