Table of Contents

Class WebChannel

Namespace
JD.AI.Channels.Web
Assembly
JD.AI.Channels.Web.dll

WebChat channel adapter for browser-based conversations via SignalR. This is a lightweight adapter that acts as a bridge between the Gateway's SignalR hub and the IChannel abstraction.

public sealed class WebChannel : IChannel, IAsyncDisposable
Inheritance
WebChannel
Implements
Inherited Members

Properties

ChannelType

Unique channel type identifier (e.g., "discord", "signal", "web").

public string ChannelType { get; }

Property Value

string

DisplayName

Display name for this channel instance.

public string DisplayName { get; }

Property Value

string

IsConnected

Whether the channel is currently connected and healthy.

public bool IsConnected { get; }

Property Value

bool

Methods

ConnectAsync(CancellationToken)

Connects to the messaging platform.

public Task ConnectAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task

DisconnectAsync(CancellationToken)

Gracefully disconnects.

public Task DisconnectAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task

DisposeAsync()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

public ValueTask DisposeAsync()

Returns

ValueTask

A task that represents the asynchronous dispose operation.

IngestMessageAsync(string, string, string)

Called by the SignalR hub when a browser client sends a message.

public Task IngestMessageAsync(string connectionId, string userId, string content)

Parameters

connectionId string
userId string
content string

Returns

Task

SendMessageAsync(string, string, CancellationToken)

Sends a message to the specified conversation/thread.

public Task SendMessageAsync(string conversationId, string content, CancellationToken ct = default)

Parameters

conversationId string
content string
ct CancellationToken

Returns

Task

Events

MessageReceived

Raised when a new inbound message arrives.

public event Func<ChannelMessage, Task>? MessageReceived

Event Type

Func<ChannelMessage, Task>

Remarks

Uses Func<ChannelMessage, Task> instead of EventHandler to support async handlers.