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 ​
new SSETransport(config: SSETransportConfig): SSETransport;Defined in: packages/nestjs/src/transports/sse.ts:44
Parameters ​
| Parameter | Type |
|---|---|
config | SSETransportConfig |
Returns ​
SSETransport
Properties ​
| Property | Type | Default value | Description | Defined in |
|---|---|---|---|---|
name | string | "sse" | Transport name (e.g., 'sse', 'websocket') | packages/nestjs/src/transports/sse.ts:37 |
Methods ​
addConnection() ​
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 ​
| Parameter | Type |
|---|---|
connectionId | string |
res | Response |
options? | { channels?: string[]; metadata?: ConnectionMetadata; } |
options.channels? | string[] |
options.metadata? | ConnectionMetadata |
Returns ​
void
applyConfig() ​
applyConfig(config: Partial<SSETransportConfig>): void;Defined in: packages/nestjs/src/transports/sse.ts:57
Apply config to existing instance (preserves connections).
Parameters ​
| Parameter | Type |
|---|---|
config | Partial<SSETransportConfig> |
Returns ​
void
closeAll() ​
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 ​
connect() ​
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 ​
| Parameter | Type |
|---|---|
connectionId | string |
metadata? | ConnectionMetadata & { channels?: string[]; res?: Response<any, Record<string, any>>; } |
Returns ​
Promise<void>
Implementation of ​
disconnect() ​
disconnect(connectionId?: string): Promise<void>;Defined in: packages/nestjs/src/transports/sse.ts:178
Disconnect an SSE client (or all if no connectionId).
Parameters ​
| Parameter | Type |
|---|---|
connectionId? | string |
Returns ​
Promise<void>
Implementation of ​
getConnectedSessions() ​
getConnectedSessions(): string[];Defined in: packages/nestjs/src/transports/sse.ts:402
Get all connected connection IDs.
Returns ​
string[]
getConnectionMetadata() ​
getConnectionMetadata(connectionId: string):
| ConnectionMetadata
| undefined;Defined in: packages/nestjs/src/transports/sse.ts:409
Get connection metadata.
Parameters ​
| Parameter | Type |
|---|---|
connectionId | string |
Returns ​
| ConnectionMetadata | undefined
getConnectionRooms() ​
getConnectionRooms(connectionId: string): string[];Defined in: packages/nestjs/src/transports/sse.ts:285
Get rooms a connection has joined.
Parameters ​
| Parameter | Type |
|---|---|
connectionId | string |
Returns ​
string[]
Implementation of ​
ChannelTransport.getConnectionRooms
getRoomConnections() ​
getRoomConnections(room: string): string[];Defined in: packages/nestjs/src/transports/sse.ts:293
Get connections in a room.
Parameters ​
| Parameter | Type |
|---|---|
room | string |
Returns ​
string[]
Implementation of ​
ChannelTransport.getRoomConnections
handleIncomingEvent() ​
handleIncomingEvent(event: ChannelEvent): void;Defined in: packages/nestjs/src/transports/sse.ts:371
Handle incoming event from HTTP POST.
Parameters ​
| Parameter | Type |
|---|---|
event | ChannelEvent |
Returns ​
void
isConnected() ​
isConnected(connectionId: string): boolean;Defined in: packages/nestjs/src/transports/sse.ts:395
Check if a connection exists.
Parameters ​
| Parameter | Type |
|---|---|
connectionId | string |
Returns ​
boolean
join() ​
join(connectionId: string, room: string): Promise<void>;Defined in: packages/nestjs/src/transports/sse.ts:247
Join a room.
Parameters ​
| Parameter | Type |
|---|---|
connectionId | string |
room | string |
Returns ​
Promise<void>
Implementation of ​
leave() ​
leave(connectionId: string, room: string): Promise<void>;Defined in: packages/nestjs/src/transports/sse.ts:267
Leave a room.
Parameters ​
| Parameter | Type |
|---|---|
connectionId | string |
room | string |
Returns ​
Promise<void>
Implementation of ​
onReceive() ​
onReceive(handler: (event: ChannelEvent) => void): void;Defined in: packages/nestjs/src/transports/sse.ts:364
Register handler for events received from transport.
Parameters ​
| Parameter | Type |
|---|---|
handler | (event: ChannelEvent) => void |
Returns ​
void
Implementation of ​
send() ​
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 ​
| Parameter | Type |
|---|---|
event | ChannelEvent |
Returns ​
Promise<void>