✅ How to handle websockets?
I have this handler. I wanna save all active connections to list, is it worth it?
public sealed class UserConnectionHandler : IDisposable
{
public required string SessionId { get; init; }
public required string ConnectionId { get; init; }
public WebSocket? Socket { get; set; }
public DateTime? LastActivityDateTime { get; set; }
public async Task SendEventAsync(string message, CancellationToken cancellationToken)
{
if(Socket?.State == WebSocketState.Open)
{
var buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(message));
await Socket.SendAsync(buffer, WebSocketMessageType.Text, true, cancellationToken).ConfigureAwait(false);
}
}
public async Task CloseAsync(WebSocketCloseStatus closeStatus, CancellationToken cancellationToken)
{
if(Socket?.State == WebSocketState.Open)
{
await Socket.CloseAsync(closeStatus, string.Empty, cancellationToken).ConfigureAwait(false);
}
}
public void Dispose()
{
Socket?.Dispose();
}public sealed class UserConnectionHandler : IDisposable
{
public required string SessionId { get; init; }
public required string ConnectionId { get; init; }
public WebSocket? Socket { get; set; }
public DateTime? LastActivityDateTime { get; set; }
public async Task SendEventAsync(string message, CancellationToken cancellationToken)
{
if(Socket?.State == WebSocketState.Open)
{
var buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(message));
await Socket.SendAsync(buffer, WebSocketMessageType.Text, true, cancellationToken).ConfigureAwait(false);
}
}
public async Task CloseAsync(WebSocketCloseStatus closeStatus, CancellationToken cancellationToken)
{
if(Socket?.State == WebSocketState.Open)
{
await Socket.CloseAsync(closeStatus, string.Empty, cancellationToken).ConfigureAwait(false);
}
}
public void Dispose()
{
Socket?.Dispose();
}
