Class WebSocketConnectionHandler
- Namespace
- Cratis.Arc.Queries
- Assembly
- Cratis.Arc.Core.dll
Represents an implementation of IWebSocketConnectionHandler.
[Singleton]
public class WebSocketConnectionHandler : IWebSocketConnectionHandler
- Inheritance
-
WebSocketConnectionHandler
- Implements
- Inherited Members
- Extension Methods
Constructors
WebSocketConnectionHandler(IOptions<ArcOptions>, ILogger<WebSocketConnectionHandler>)
Represents an implementation of IWebSocketConnectionHandler.
public WebSocketConnectionHandler(IOptions<ArcOptions> arcOptions, ILogger<WebSocketConnectionHandler> handlerLogger)
Parameters
arcOptionsIOptions<ArcOptions>The ArcOptions.
handlerLoggerILogger<WebSocketConnectionHandler>The ILogger.
Methods
HandleIncomingMessages(IWebSocket, SemaphoreSlim, CancellationToken)
Handles all incoming web messages on the given IWebSocket.
public Task HandleIncomingMessages(IWebSocket webSocket, SemaphoreSlim writeLock, CancellationToken token)
Parameters
webSocketIWebSocketThe IWebSocket to listen to.
writeLockSemaphoreSlimA per-connection SemaphoreSlim that serializes all sends on this socket.
tokenCancellationTokenThe CancellationToken.
Returns
SendMessage(IWebSocket, QueryResult, SemaphoreSlim, CancellationToken)
Sends a message on the IWebSocket.
public Task<Exception?> SendMessage(IWebSocket webSocket, QueryResult queryResult, SemaphoreSlim writeLock, CancellationToken token)
Parameters
webSocketIWebSocketThe IWebSocket to send on.
queryResultQueryResultThe QueryResult message to write.
writeLockSemaphoreSlimA per-connection SemaphoreSlim that serializes all sends on this socket.
tokenCancellationTokenThe CancellationToken.