An extremely efficient C# WebSocket server.
C#
Latest commit 42c00b6 Oct 1, 2013 @ajacksified ajacksified Merge pull request #80 from jhaygood86/fix-close
Send 0x8 byte when closed

README.md

Alchemy Websockets

Version 2.0.0

Protocol Support

Alchemy websockets supports:

  • (✓) hixie-76 (hybi00)
  • (✓) hybi-10
  • (✓) hybi-17 (official protocol)

An extremely efficient C# WebSocket server.

You can download the client javascript library at alchemy-websockets-client-library

Documentation: olivinelabs.com/Alchemy-Websockets/

Usage

Alchemy Websockets is a Visual Studio 2010 project. It can be loaded in the free Visual C# Express and Monodevelop as well (and potentially other compatible IDEs.)

After compilation, include the dll as a reference into your project. From there, starting a server is as simple as instantiating an WSServer object, opening the connection, and binding events.

An example application can be seen on alchemy-websockets-example

Example:

//...refs
using Alchemy;
using Alchemy.Classes;

static void Main(string[] args)
{
  var aServer = new WSServer(8100, IPAddress.Any)
  {
      DefaultOnReceive = OnReceive,
      DefaultOnSend = OnSend,
      DefaultOnConnect = OnConnect,
      DefaultOnConnected = OnConnected,
      DefaultOnDisconnect = OnDisconnect,
      TimeOut = new TimeSpan(0, 5, 0)
  };

  aServer.Start();
}

static void OnConnected(UserContext aContext)
{
  Console.WriteLine("Client Connection From : " + aContext.ClientAddress.ToString());
}

//...etc

Documentation

Check out our documentation at http://olivinelabs.com/Alchemy-Websockets

This covers Chrome current, beta, and alpha channels; Firefox latest, beta, and alpha channels; Safari, and includes support for a flash-based socket fallback for browsers with no socket support natively.

Browser Support List

License

Licensed under LGPL and MIT. Copyright 2011, Olivine Labs, LLC.