Skip to content

AIDK API Reference / aidk-nestjs / SSETransport

Class: SSETransport ​

Defined in: packages/nestjs/src/transports/sse.ts:36

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/nestjs/src/transports/sse.ts:44

Parameters ​

ParameterType
configSSETransportConfig

Returns ​

SSETransport

Properties ​

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

Methods ​

addConnection() ​

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

Defined in: packages/nestjs/src/transports/sse.ts:380

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/nestjs/src/transports/sse.ts:57

Apply config to existing instance (preserves connections).

Parameters ​

ParameterType
configPartial<SSETransportConfig>

Returns ​

void


closeAll() ​

ts
closeAll(): void;

Defined in: packages/nestjs/src/transports/sse.ts:210

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/nestjs/src/transports/sse.ts:66

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/nestjs/src/transports/sse.ts:178

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/nestjs/src/transports/sse.ts:402

Get all connected connection IDs.

Returns ​

string[]


getConnectionMetadata() ​

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

Defined in: packages/nestjs/src/transports/sse.ts:409

Get connection metadata.

Parameters ​

ParameterType
connectionIdstring

Returns ​

| ConnectionMetadata | undefined


getConnectionRooms() ​

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

Defined in: packages/nestjs/src/transports/sse.ts:285

Get rooms a connection has joined.

Parameters ​

ParameterType
connectionIdstring

Returns ​

string[]

Implementation of ​

ChannelTransport.getConnectionRooms


getRoomConnections() ​

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

Defined in: packages/nestjs/src/transports/sse.ts:293

Get connections in a room.

Parameters ​

ParameterType
roomstring

Returns ​

string[]

Implementation of ​

ChannelTransport.getRoomConnections


handleIncomingEvent() ​

ts
handleIncomingEvent(event: ChannelEvent): void;

Defined in: packages/nestjs/src/transports/sse.ts:371

Handle incoming event from HTTP POST.

Parameters ​

ParameterType
eventChannelEvent

Returns ​

void


isConnected() ​

ts
isConnected(connectionId: string): boolean;

Defined in: packages/nestjs/src/transports/sse.ts:395

Check if a connection exists.

Parameters ​

ParameterType
connectionIdstring

Returns ​

boolean


join() ​

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

Defined in: packages/nestjs/src/transports/sse.ts:247

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/nestjs/src/transports/sse.ts:267

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/nestjs/src/transports/sse.ts:364

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/nestjs/src/transports/sse.ts:307

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.