J'ai actuellement une application serveur TCP écrite en .Net qui reçoit et envoie des messages aux clients. Je cherche à créer une application Web, donc besoin de la couche de communication.
J'ai construit une application Node.JS + Socket.IO qui se connecte à mon TCP serveur), puis pousse la communication vers l'application Web et tout fonctionne correctement.
Je viens de lire sur SignalR comme une alternative pour le garder dans la pile. Net.
Cependant, j'ai également constaté que je pouvais écrire un serveur Websocket C #, une démo de base ici
Je suppose que ce serveur de base est ce que SignalR est mais avec évidemment beaucoup plus de fonctionnalités?
Ce que j’essaie de décider, c’est que j’ajoute simplement mon application actuelle TCP avec un serveur Websocket ou est-ce que je descends sur une route SignalR ou Node.js distincte? application exécutée, s’agit-il d’un service Windows, d’une application console ou de IIS?
SignalR ressemble à Socket.IO en ce qu'il prend en charge la négociation/le repli de transport. C'est un framework et non un serveur, vous devez donc l'héberger sur un serveur quelconque. Nous avons des hôtes pour ASP.NET, OWIN (par exemple Kayak) et self-Host. Vous pouvez donc l’exécuter facilement dans votre propre processus, par exemple. un service Windows.
SignalR a pris en charge les clients pour les navigateurs (JS), .NET, Windows Phone 7 et Silverlight. Il existe également des clients contribués pour des choses comme iOS, Mono Touch, etc.
SignalR vous donnera une API de niveau beaucoup plus élevé que les sockets brutes, ce qui constitue son gros avantage, vous permettant de faire des choses comme "RPC" du serveur aux clients de manière diffusée (ou ciblée).
J'ai utilisé les deux technologies et travaille des deux côtés des piles de .NET/node.
Update - Suppression des informations jQuery car elles ne sont plus applicables
Développer un serveur évolutif/sans danger TCP peut ne pas être une tâche facile. D'autre part, il existe de très jolies ressources sur Internet pour vous permettre de démarrer le vôtre. Par exemple, si vous êtes À la recherche de beaux projets WebSocket open source, mon conseil serait:
Alchemy Project : Bibliothèque WebSocket Open Source C #
Projet Fleck : Bibliothèque WebSocket Open Source C #
SignalR pourrait être agréable, mais il nécessite Windows Server 8/IIS 8 pour pouvoir fournir la fonctionnalité WebSocket.
Du côté des produits commerciaux, étant donné que la fonctionnalité websocket n’est pas disponible sur tous les navigateurs, je recommande PokeIn WebSocket et reverse Ajax Library. À partir de la version 2.0, il possède un serveur WebSocket intégré. Détails disponibles à partir de ici