Skip to content

AIDK API Reference / aidk-express / SSETransport

Class: SSETransport ​

Defined in: packages/express/src/transports/sse.ts:43

Transport adapter for external communication (e.g., SSE, WebSocket). Optional add-on layer - channels work without transport.

Supports room-based routing (inspired by Socket.io):

  • Connections can join/leave rooms
  • Events can target specific rooms
  • excludeSender provides "broadcast" semantics (send to others)

Implements ​

Constructors ​

Constructor ​

ts
new SSETransport(config: SSETransportConfig): SSETransport;

Defined in: packages/express/src/transports/sse.ts:51

Parameters ​

ParameterType
configSSETransportConfig

Returns ​

SSETransport

Properties ​

PropertyTypeDefault valueDescriptionDefined in
namestring"sse"Transport name (e.g., 'sse', 'websocket')packages/express/src/transports/sse.ts:44

Methods ​

addConnection() ​

ts
addConnection(
   connectionId: string, 
   res: Response, 
   options?: {
  channels?: string[];
  metadata?: ConnectionMetadata;
}): void;

Defined in: packages/express/src/transports/sse.ts:393

Add a new SSE connection (convenience method for HTTP routes).

Parameters ​

ParameterType
connectionIdstring
resResponse
options?{ channels?: string[]; metadata?: ConnectionMetadata; }
options.channels?string[]
options.metadata?ConnectionMetadata

Returns ​

void


applyConfig() ​

ts
applyConfig(config: Partial<SSETransportConfig>): void;

Defined in: packages/express/src/transports/sse.ts:64

Apply config to existing instance (preserves connections).

Parameters ​

ParameterType
configPartial<SSETransportConfig>

Returns ​

void


closeAll() ​

ts
closeAll(): void;

Defined in: packages/express/src/transports/sse.ts:217

Close all connections with a proper close event. Used for graceful server shutdown.

Returns ​

void

Implementation of ​

ChannelTransport.closeAll


connect() ​

ts
connect(connectionId: string, metadata?: ConnectionMetadata & {
  channels?: string[];
  res?: Response<any, Record<string, any>>;
}): Promise<void>;

Defined in: packages/express/src/transports/sse.ts:73

Connect a new SSE client with optional metadata. Connection may be rejected if limits are exceeded (response is sent automatically).

Parameters ​

ParameterType
connectionIdstring
metadata?ConnectionMetadata & { channels?: string[]; res?: Response<any, Record<string, any>>; }

Returns ​

Promise<void>

Implementation of ​

ChannelTransport.connect


disconnect() ​

ts
disconnect(connectionId?: string): Promise<void>;

Defined in: packages/express/src/transports/sse.ts:185

Disconnect an SSE client (or all if no connectionId).

Parameters ​

ParameterType
connectionId?string

Returns ​

Promise<void>

Implementation of ​

ChannelTransport.disconnect


getConnectedSessions() ​

ts
getConnectedSessions(): string[];

Defined in: packages/express/src/transports/sse.ts:415

Get all connected connection IDs.

Returns ​

string[]


getConnectionMetadata() ​

ts
getConnectionMetadata(connectionId: string): 
  | ConnectionMetadata
  | undefined;

Defined in: packages/express/src/transports/sse.ts:422

Get connection metadata.

Parameters ​

ParameterType
connectionIdstring

Returns ​

| ConnectionMetadata | undefined


getConnectionRooms() ​

ts
getConnectionRooms(connectionId: string): string[];

Defined in: packages/express/src/transports/sse.ts:292

Get rooms a connection has joined.

Parameters ​

ParameterType
connectionIdstring

Returns ​

string[]

Implementation of ​

ChannelTransport.getConnectionRooms


getRoomConnections() ​

ts
getRoomConnections(room: string): string[];

Defined in: packages/express/src/transports/sse.ts:300

Get connections in a room.

Parameters ​

ParameterType
roomstring

Returns ​

string[]

Implementation of ​

ChannelTransport.getRoomConnections


handleIncomingEvent() ​

ts
handleIncomingEvent(event: ChannelEvent): void;

Defined in: packages/express/src/transports/sse.ts:384

Handle incoming event from HTTP POST.

Parameters ​

ParameterType
eventChannelEvent

Returns ​

void


isConnected() ​

ts
isConnected(connectionId: string): boolean;

Defined in: packages/express/src/transports/sse.ts:408

Check if a connection exists.

Parameters ​

ParameterType
connectionIdstring

Returns ​

boolean


join() ​

ts
join(connectionId: string, room: string): Promise<void>;

Defined in: packages/express/src/transports/sse.ts:254

Join a room.

Parameters ​

ParameterType
connectionIdstring
roomstring

Returns ​

Promise<void>

Implementation of ​

ChannelTransport.join


leave() ​

ts
leave(connectionId: string, room: string): Promise<void>;

Defined in: packages/express/src/transports/sse.ts:274

Leave a room.

Parameters ​

ParameterType
connectionIdstring
roomstring

Returns ​

Promise<void>

Implementation of ​

ChannelTransport.leave


onReceive() ​

ts
onReceive(handler: (event: ChannelEvent) => void): void;

Defined in: packages/express/src/transports/sse.ts:377

Register handler for events received from transport.

Parameters ​

ParameterType
handler(event: ChannelEvent) => void

Returns ​

void

Implementation of ​

ChannelTransport.onReceive


send() ​

ts
send(event: ChannelEvent): Promise<void>;

Defined in: packages/express/src/transports/sse.ts:314

Send an event to SSE clients.

Routing is determined by event.target:

  • No target: broadcast to all
  • target.connectionId: send to specific connection
  • target.rooms: send to connections in those rooms
  • target.excludeSender: exclude sourceConnectionId

Parameters ​

ParameterType
eventChannelEvent

Returns ​

Promise<void>

Implementation of ​

ChannelTransport.send

Released under the MIT License.