Skip to main content

Class: WebChatChannelAdapter

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:147

Channel adapter for web-based chat using HTTP/WebSocket.

Uses dynamic import for the ws package so it is only required at runtime when the adapter is actually initialized.

Capabilities: text, rich_text, images, buttons, typing_indicator, read_receipts.

Extends​

Constructors​

Constructor​

new WebChatChannelAdapter(retryConfig?): WebChatChannelAdapter

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:111

Parameters​

retryConfig?​

Partial<RetryConfig>

Returns​

WebChatChannelAdapter

Inherited from​

BaseChannelAdapter.constructor

Properties​

auth​

protected auth: ChannelAuthConfig & object | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:97

Stored auth config so reconnect() can re-use it.

Inherited from​

BaseChannelAdapter.auth


capabilities​

readonly capabilities: readonly ChannelCapability[]

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:150

Declared capabilities of this adapter.

Overrides​

BaseChannelAdapter.capabilities


connectedSince​

protected connectedSince: string | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:92

Inherited from​

BaseChannelAdapter.connectedSince


displayName​

readonly displayName: "WebChat" = 'WebChat'

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:149

Human-readable display name (e.g., "WhatsApp Business").

Overrides​

BaseChannelAdapter.displayName


errorMessage​

protected errorMessage: string | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:93

Inherited from​

BaseChannelAdapter.errorMessage


platform​

readonly platform: ChannelPlatform = 'webchat'

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:148

Platform this adapter serves.

Overrides​

BaseChannelAdapter.platform


platformInfo​

protected platformInfo: Record<string, unknown> = {}

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:94

Inherited from​

BaseChannelAdapter.platformInfo


retryConfig​

protected readonly retryConfig: RetryConfig

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:101

Inherited from​

BaseChannelAdapter.retryConfig


status​

protected status: ChannelConnectionStatus = 'disconnected'

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:91

Inherited from​

BaseChannelAdapter.status

Methods​

attachToServer()​

attachToServer(server): void

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:195

Attach to an existing HTTP server instead of creating a standalone one. Must be called before initialize.

Parameters​

server​

any

Node.js http.Server instance (e.g., from Express).

Returns​

void


broadcast()​

broadcast(content): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:411

Broadcast a message to ALL connected and authenticated clients.

Parameters​

content​

MessageContent

Returns​

Promise<void>


doConnect()​

protected doConnect(auth): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:201

Establish the platform connection using the supplied credentials. Called by initialize after state has been set to connecting. Must throw on failure — the base class handles retry and state changes.

Parameters​

auth​

ChannelAuthConfig & object

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.doConnect


doSendMessage()​

protected doSendMessage(conversationId, content): Promise<ChannelSendResult>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:281

Deliver a message to the external platform. Called by sendMessage only when the adapter is connected.

Parameters​

conversationId​

string

content​

MessageContent

Returns​

Promise<ChannelSendResult>

Overrides​

BaseChannelAdapter.doSendMessage


doShutdown()​

protected doShutdown(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:322

Release platform resources (close WebSocket, stop polling, etc.). Called by shutdown before the state transitions to disconnected.

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.doShutdown


emit()​

protected emit(event): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:265

Emit an event to all matching subscribers. Subclasses call this when the platform SDK receives an inbound event.

Parameters​

event​

ChannelEvent

Returns​

void

Inherited from​

BaseChannelAdapter.emit


emitConnectionChange()​

protected emitConnectionChange(): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:296

Convenience helper: emit a connection_change event with the current status. Called automatically by setStatus.

Returns​

void

Inherited from​

BaseChannelAdapter.emitConnectionChange


getConnectedClientCount()​

getConnectedClientCount(): number

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:399

Get the number of currently connected clients.

Returns​

number


getConnectedClientIds()​

getConnectedClientIds(): string[]

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:404

Get all connected client IDs.

Returns​

string[]


getConnectionInfo()​

getConnectionInfo(): ChannelConnectionInfo

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:205

Get the current connection status and metadata.

Returns​

ChannelConnectionInfo

Inherited from​

BaseChannelAdapter.getConnectionInfo


getConversationInfo()​

getConversationInfo(conversationId): Promise<{ isGroup: boolean; memberCount?: number; metadata?: Record<string, unknown>; name?: string; }>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:378

Parameters​

conversationId​

string

Returns​

Promise<{ isGroup: boolean; memberCount?: number; metadata?: Record<string, unknown>; name?: string; }>


hasCapability()​

protected hasCapability(cap): boolean

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:312

Check whether this adapter declares a specific capability.

Parameters​

cap​

ChannelCapability

Returns​

boolean

Inherited from​

BaseChannelAdapter.hasCapability


initialize()​

initialize(auth): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:151

Initialize the adapter with auth credentials. If already connected this will shut down the existing connection first (idempotent).

Parameters​

auth​

ChannelAuthConfig

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.initialize


on()​

on(handler, eventTypes?): () => void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:248

Register an event handler. Returns an unsubscribe function.

Parameters​

handler​

ChannelEventHandler

eventTypes?​

ChannelEventType[]

Returns​

(): void

Returns​

void

Inherited from​

BaseChannelAdapter.on


reconnect()​

reconnect(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:186

Manually trigger a reconnection attempt using stored credentials. Useful for UI-driven "reconnect" buttons.

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.reconnect


sendMessage()​

sendMessage(conversationId, content): Promise<ChannelSendResult>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:218

Send a message to a conversation on the external platform.

Parameters​

conversationId​

string

Platform-native conversation/chat ID.

content​

MessageContent

Message content to send.

Returns​

Promise<ChannelSendResult>

The platform-assigned message ID.

Inherited from​

BaseChannelAdapter.sendMessage


sendTypingIndicator()​

sendTypingIndicator(conversationId, isTyping): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/WebChatChannelAdapter.ts:360

Default stub — platforms that support typing indicators should override.

Parameters​

conversationId​

string

isTyping​

boolean

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.sendTypingIndicator


setStatus()​

protected setStatus(newStatus, error?): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:319

Transition to a new connection status and emit an event.

Parameters​

newStatus​

ChannelConnectionStatus

error?​

string

Returns​

void

Inherited from​

BaseChannelAdapter.setStatus


shutdown()​

shutdown(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:166

Gracefully shut down the adapter and release all resources.

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.shutdown