Skip to content

Repository files navigation

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

varsockJs=newSockJS("http://localhost:9999/echo");sockJs.Connected+=async(sender,e)=>{// this event is triggered once the connection is establishedtry{Console.WriteLine("Connected...");awaitsockJs.Send(JsonConvert.SerializeObject(new{foo="bar"}));}catch(Exceptionex){Console.WriteLine($"Error: {e}");}};sockJs.Message+=async(sender,msg)=>{// this event is triggered every time a message is receivedtry{Console.WriteLine($"Message: {msg}");awaitsockJs.Disconnect();// disconnect after first received message}catch(Exceptionex){Console.WriteLine($"Error: {e}");}};sockJs.Disconnected+=(sender,e)=>{// this event is triggered when the connection is disconnected (for any reason)Console.WriteLine("Disconnected");};awaitsockJs.Connect();// connect to the server

Advanced Usage

Customize Configuration

// create a default configuration file (default values)varconfig=Configuration.Factory.BuildDefault("http://localhost:9999/echo");varsockJs=newSockJs(config);

Customize Logger

config.Logger=newConsoleLogger();

Customize Default Request Headers

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

Customize Transports

// add custom transport implementationsconfig.TransportFactories.Add(newCustomTransportFactory());// remove custom/built-in transport implementationconfig.TransportFactories.Remove(config.TransportFactories.First(t =>t.Name=="websocket-system"));// disable transportconfig.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 implementation of the SockJS client

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages