Skip to content

Lightweight, user-friendly WebSocket APIs for .NET 6 C#

License

Notifications You must be signed in to change notification settings

behnammby/ninja-websocket-net

 
 

Repository files navigation

Ninja WebSocket

NuGet GitHub

NinjaWebSocket is an easy-to-use .NET6 WebSocket client with auto-reconnect and keep-alive capabilities.

Lightweight library, user-friendly API, inspired by the javascript WebSocket API and SignalR.

snippets

The repo also contains two usage examples:

Basic usage:

var ws = new NinjaWebSocket("<websocket_url>")
    .SetKeepAlive(keepAliveIntervalSeconds: 5)
    .SetAutomaticReconnect(autoReconnectIntervalSeconds: 5);

ws.OnConnected += async () =>
{
    // Notify users the connection was established.
    Console.WriteLine("Connected.");

    // Send messages
    await ws.SendAsync("hello world!");
};

ws.OnReceived += data =>
{
    Console.WriteLine(Encoding.UTF8.GetString(data!.Value.ToArray()));

    return Task.CompletedTask;
};

ws.OnKeepAlive += () =>
{
    Console.WriteLine("Ping.");

    return Task.CompletedTask;
};

ws.OnReconnecting += (ex) =>
{
    // Notify users the connection was lost and the client is reconnecting.
    Console.WriteLine($"Reconnecting: {ex?.Message}");

    return Task.CompletedTask;
};

ws.OnClosed += (ex) =>
{
    // Notify users the connection has been closed.
    Console.WriteLine($"Closed: {ex?.Message}");

    return Task.CompletedTask;
};

// Connect to the ws and start listening
await ws.StartAsync();

MIT License

About

Lightweight, user-friendly WebSocket APIs for .NET 6 C#

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%