© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•11mo ago•
51 replies
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();
    }
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();
    }
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements
Next page

Similar Threads

How to handle long running requests ?
C#CC# / help
2y ago
✅ How to handle commands in TreeView?
C#CC# / help
3y ago
❔ How to handle null in Interface
C#CC# / help
3y ago
✅ SignalR / Websockets
C#CC# / help
3y ago