34

I just installed Visual Studio 2012 RC and tried to run a service with netHttpBinding enabling WebSocket and get the following error:

This platform does not support server side WebSockets.

The sample I am running is from http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/01/what-s-new-in-wcf-4-5-websocket-support-part-1-of-2.aspx

Can WebSockets work on Windows 7 with Visual Studio 2012 RC?

2 Answers 2

46

No, websockets is only natively supported by Windows in Windows 8, regardless of which visual studio version you are using.

http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html

This is due to some low level issues in Windows 7 with http.sys.

There's an offchance it may be backported, but seems unlikely: http://weblogs.asp.net/owscott/archive/2012/03/01/what-s-new-in-iis-8.aspx

To use websockets on Windows 7, you'll have to write your own service.

Try using this for clientside: http://websocket4net.codeplex.com/

and this for server side: http://superwebsocket.codeplex.com/

2
  • Am I mistaken in that websocket4net is for client side implementation? Wouldn't SuperWebSocket be what is needed to accept connections on the serverside? IDK, I may be wrong, but that's based on the description on the page you link to.
    – AaronLS
    Commented Jul 2, 2013 at 19:24
  • Quite right, thanks - have edited to include link to server side part of that project as well.
    – Nik
    Commented Jul 4, 2013 at 11:43
16

I ran into the same problem and solved it by using Fleck. Trivially simple to implement:

One. NuGet add Fleck reference

Two. Create your webserver socket

// Create Websocket server
websocketServer = new Fleck.WebSocketServer("ws://localhost:82");
websocketServer.Start(socket =>
{
    socket.OnOpen = () => Console.WriteLine("Open!");
    socket.OnClose = () => Console.WriteLine("Close!");
    socket.OnMessage = message => socket.Send(message);
});

I now have a a ASP.NET Self Host web API on one port and the websockets connection running along side it.

1
  • This is interesting, just highlighting that Fleck is server-side implementation, not client-side. Commented Jan 9, 2017 at 14:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.