2010-06-10 17 views
16

Je sais qu'il est possible d'utiliser WebSockets en C# en utilisant une application console fonctionnant avec l'application web mais je me demande s'il est possible d'utiliser les requêtes sur l'application web C# pour créer les WebSockets. J'ai regardé ASP.Net et je commence à penser que ce ne sera pas possible à moins d'utiliser C# directement et de créer mon propre serveur HTTP, puis d'utiliser le même objet socket pour générer des Web Sockets (similaire à la manière Node.js et Socket.IO fonctionnent). Y at-il des idées sur la façon d'inclure WebSockets sur une application Web C# sans avoir plusieurs serveurs/projets?Utilisation de WebSockets dans une application Web C#?

+0

Pouvez-vous fournir un lien vers l'utilisation de WebSockets avec une application console? Je ne pensais pas que .NET supportait les websockets du tout. –

+0

J'ai trouvé un couple: http://nugget.codeplex.com/ http://www.extjs.com/forum/showthread.php?99842-WebSocket-server-in-C http: // www .codeproject.com/KB/webservices/c_sharp_web_socket_server.aspx Ils fonctionnent tous avec Mono ou .Net. – sixones

+0

@ John Saunders, tout ce qui doit être fait est écrit dans le .NET BCL. Certaines choses doivent être implémentées en plus de ce que .NET fournit déjà. –

Répondre

11

Il est possible d'héberger un serveur WebSockets dans le contexte d'un ASP.NET. Cependant, vous devez être conscient que l'application ASP.NET peut être redémarrée, ce qui signifie que le serveur sera arrêté et devra être rétabli avec l'application ASP.NET. L'hébergement de l'application WebSockets dans un service Windows séparé fournirait une plus grande fiabilité au serveur de socket, mais nécessiterait alors IPC pour partager des données entre l'application ASP.NET et le service Windows.

Donc, il y a un compromis à discuter. Cela dépend de la sensibilité de votre code client à la perte et au rétablissement de la connexion. Si cela est géré suffisamment, l'hébergement dans ASP.NET sera bien. Notez que si WebSockets est nouveau pour le langage HTML, le concept existe depuis de nombreuses années avec les applets Flash et Java. Surtout avec Flash, il est couramment utilisé pour les jeux en ligne et le chat sur le Web.

+0

Merci, je pensais que ce serait le cas, je pensais que le compromis serait d'utiliser un projet d'application Web dans ASP.Net, un serveur WebSocket en C# et une bibliothèque C# (contenant tous les modèles) chaque projet de serveur a accès à. Le projet sur lequel je travaille n'a pas réellement besoin de partager les données entre les deux projets de serveur car les deux protocoles gèrent différents chemins de données. Cependant contenant tout dans 1 projet serait beaucoup plus agréable! Avez-vous des liens vers des exemples ou des informations sur l'utilisation de WebSockets dans ASP.Net? – sixones

+1

@sixones, il n'y a vraiment aucune différence dans l'implémentation réelle quand elle est hébergée dans ASP.NET au lieu d'un service Windows. Initialisez-le simplement à l'événement initialize de l'application au lieu de l'appel 'OnStart' du service. –

3

Consultez le .net client implementations de Kaazing. En utilisant ces clients, vous pouvez vous connecter à n'importe quel serveur websocket.

+0

Je me demandais à propos d'un serveur pas une implémentation client, merci cependant. – sixones

3

PokeIn 2.0 a construit en fonction WebSocket et il ne nécessite aucun environnement particulier au travail. Détails disponibles à partir de here