web-dev-qa-db-fra.com

Utilisation de WebSocket sur Windows 7

Je viens d'installer Visual Studio 2012 RC et j'ai essayé d'exécuter un service avec netHttpBinding permettant à WebSocket et d'obtenir l'erreur suivante

Cette plate-forme ne prend pas en charge les WebSockets côté serveur.

l'exemple que j'exécute est de 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

WebSockets peut-il fonctionner sur Windows 7 avec Visual Studio 2012 RC?

34
np-hard

Non, les websockets sont uniquement pris en charge nativement par Windows dans Windows 8, quelle que soit la version de Visual Studio que vous utilisez.

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

Cela est dû à certains problèmes de bas niveau dans Windows 7 avec http.sys.

Il y a une chance qu'il soit rétroporté, mais semble peu probable: http://weblogs.asp.net/owscott/archive/2012/03/01/what-s-new-in-iis-8.aspx

Pour utiliser les websockets sur Windows 7, vous devrez écrire votre propre service.

Essayez d'utiliser ceci pour le côté client: http://websocket4net.codeplex.com/

et ceci côté serveur: http://superwebsocket.codeplex.com/

46
Nik

J'ai rencontré le même problème et l'ai résolu en utilisant Fleck . Simple à mettre en œuvre:

Un. NuGet ajoute une référence Fleck

Deux. Créez votre socket de serveur Web

// 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);
});

J'ai maintenant une API web ASP.NET Self Host sur un port et la connexion websockets qui fonctionne à côté.

16
tonycoupland

J'ai développé un composant serveur .NET WebSocket qui utilise async/wait, prend en charge SSL et la compression, a intégré keep alive et bien d'autres choses.

À votre santé.

3
vtortola