C#C
C#9mo ago
SWEETPONY

✅ 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();
    }
Was this page helpful?