Table of Contents

Class ApiLifecyclePublisher

Namespace
Virtufin.WebSocketManager.Services
Assembly
Virtufin.WebSocketManager.dll

Publishes connection lifecycle events to the virtufin-api's system-events topic. Events are CloudEvents v1.0 envelopes with the WSM's URN as the source. The publisher is best-effort: failures are logged but never propagated, so an unreachable API does not break the WSM's local connection state machine.

public class ApiLifecyclePublisher
Inheritance
ApiLifecyclePublisher
Inherited Members

Constructors

ApiLifecyclePublisher(ILogger<ApiLifecyclePublisher>, PubsubClient)

public ApiLifecyclePublisher(ILogger<ApiLifecyclePublisher> logger, Pubsub.PubsubClient pubsub)

Parameters

logger ILogger<ApiLifecyclePublisher>
pubsub Pubsub.PubsubClient

Methods

PublishErrorAsync(WebSocketConnection, Exception, CancellationToken)

Fires a connection.error event with the exception context BEFORE any state transition. Subscribers can use this for diagnostics; the subsequent state transition event carries the recovery action.

public Task PublishErrorAsync(WebSocketConnection connection, Exception ex, CancellationToken cancellationToken = default)

Parameters

connection WebSocketConnection
ex Exception
cancellationToken CancellationToken

Returns

Task

PublishIfChangedAsync(WebSocketConnection, ConnectionStatus, CancellationToken)

Fires a connection.* event when the connection's status changes. Returns immediately. If connection.Status already equals newStatus, no event is published.

public Task PublishIfChangedAsync(WebSocketConnection connection, ConnectionStatus newStatus, CancellationToken cancellationToken = default)

Parameters

connection WebSocketConnection
newStatus ConnectionStatus
cancellationToken CancellationToken

Returns

Task