Nothing Special   »   [go: up one dir, main page]

Skip to content

A .NET Framework implementation of the SockJS client

License

Notifications You must be signed in to change notification settings

MHabiburRahman7/SockJS.NET

 
 

Repository files navigation

Reason why I Fork and modify

https://docs.microsoft.com/en-us/dotnet/standard/net-standard Since my current project is built based on .Net Framework and they said that NET Framework doesn't support .NET Standard 2.1, I decided to tweak this project a little bit to make it worked in NET Framework 4.8

To distinguish with the existing project without dispose the original author, I decided to name project namespace with syp.biz.SockJS.NET.Framework While the original namespace was syp.biz.SockJS.NET

SockJS.NET

An asynchronous .NET implementation of the SockJS client

Components

Includes all interfaces, extensions, enums and utils which are common to the client, user of the client and for extending the client.

The client library containing the actual SockJS client to be used by consuming applications.

A test application which consumes the client library.

A node.js SockJS server to be used in conjunction with the test application.

Basic Usage

var sockJs = new SockJS("http://localhost:9999/echo");
sockJs.Connected += async (sender, e) =>
{
    // this event is triggered once the connection is established
    try
    {
        Console.WriteLine("Connected...");
        await sockJs.Send(JsonConvert.SerializeObject(new { foo = "bar" }));
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {e}");
    }
};

sockJs.Message += async (sender, msg) =>
{
    // this event is triggered every time a message is received
    try
    {
        Console.WriteLine($"Message: {msg}");
        await sockJs.Disconnect(); // disconnect after first received message
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {e}");
    }
};

sockJs.Disconnected += (sender, e) =>
{
    // this event is triggered when the connection is disconnected (for any reason)
    Console.WriteLine("Disconnected");
};

await sockJs.Connect(); // connect to the server

Advanced Usage

Customize Configuration

// create a default configuration file (default values)
var config = Configuration.Factory.BuildDefault("http://localhost:9999/echo"); 
var sockJs = new SockJs(config);

Customize Logger

config.Logger = new ConsoleLogger();

Customize Default Request Headers

config.DefaultHeaders = new WebHeaderCollection
{
    {HttpRequestHeader.UserAgent, "Custom User Agent"},
    {"application-key", "foo-bar"}
};

Customize Transports

// add custom transport implementations
config.TransportFactories.Add(new CustomTransportFactory());

// remove custom/built-in transport implementation
config.TransportFactories.Remove(config.TransportFactories.First(t => t.Name == "websocket-system"));

// disable transport
config.TransportFactories.First(t => t.Name == "websocket-system").Enabled = false;

Note

Built-in WebSocket connection (websocket-system) is implemented via System.Net.WebSockets.ClientWebSocket and as such, is not supported on Windows 7, Windows Vista SP2, and Windows Server 2008. See Remarks section.

References

This library is based on the SockJS-client JavaScript library (license).

Dependencies

About

A .NET Framework implementation of the SockJS client

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 95.6%
  • HTML 2.6%
  • JavaScript 1.8%