Skip to content

Instantly share code, notes, and snippets.

@damianh
Created January 24, 2012 22:17
Show Gist options
  • Save damianh/1673072 to your computer and use it in GitHub Desktop.
Save damianh/1673072 to your computer and use it in GitHub Desktop.
Fleck and WebSocket4Net
private static void Main(string[] args)
{
var server = new WebSocketServer("ws://127.0.0.1:8181");
server.Start(socket =>
{
socket.OnOpen = () => Console.WriteLine("Open!");
socket.OnClose = () => Console.WriteLine("Close!");
socket.OnError = ex => Console.WriteLine("Server: " + ex);
socket.OnMessage = message =>
{
Console.WriteLine("Received " + message);
socket.Send(message);
};
});
var resetEvent = new AutoResetEvent(false);
var websocket = new WebSocket("ws://127.0.0.1:8181");
websocket.Opened += (sender, eventArgs) =>
{
Console.WriteLine("Client Opened!");
resetEvent.Set();
};
websocket.Error += (sender, eventArgs) => Console.WriteLine("Client:" + eventArgs.Exception);
websocket.Closed += (sender, eventArgs) => Console.WriteLine("Closed");
websocket.MessageReceived += (sender, eventArgs) =>
{
Console.WriteLine(eventArgs.Message);
resetEvent.Set();
};
websocket.Open();
Debug.Assert(resetEvent.WaitOne(5000));
websocket.Send("Yo");
Debug.Assert(resetEvent.WaitOne(5000));
Console.ReadLine();
server.Dispose();
}
24/01/2012 22:10:16 [Info] Server started at ws://127.0.0.1:8181
Open!
Client Opened!
Server: Fleck.WebSocketException: Client data must be masked
at Fleck.Handlers.Hybi13Handler.ReceiveData(List`1 data, ReadState readState,
Action`2 processFrame)
at Fleck.Handlers.Hybi13Handler.<>c__DisplayClass8.<Create>b__4(List`1 d)
at Fleck.Handlers.ComposableHandler.Receive(IEnumerable`1 data)
at Fleck.WebSocketConnection.<>c__DisplayClass9.<Read>b__8(Int32 r)
at Fleck.SocketWrapper.<>c__DisplayClassa.<Receive>b__8(Task`1 t)
at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
Close!
Closed
Client:System.Net.Sockets.SocketException (0x80004005): An existing connection w
as forcibly closed by the remote host
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment