Ich habe derzeit eine TCP-Serveranwendung in .Net geschrieben, die Nachrichten empfängt und an Clients sendet. Ich möchte eine Webanwendung erstellen, benötige also die Kommunikationsschicht.
Ich habe eine Node.JS + Socket.IO-App erstellt, die eine Verbindung zu meinem TCP-Server herstellt und dann die Kommunikation zur Webanwendung pusht. Alles funktioniert einwandfrei.
Ich habe gerade über SignalR als Alternative gelesen, um es im .Net-Stack zu behalten.
Ich habe jedoch auch festgestellt, dass ich einen C # Websocket Server schreiben kann, eine grundlegende Demo hier
Ich gehe davon aus, dass dieser Basisserver das ist, was SignalR ist, aber offensichtlich mit viel mehr Funktionalität darin?
Ich versuche zu entscheiden, ob ich meine aktuelle TCP-Anwendung nur an einen Websocket-Server anhänge oder ob ich eine separate SignalR- oder Node.js-Route gehe. Aus Interesse, wie läuft eine SignalR-Anwendung als Windows-Dienst, Konsolen-App oder IIS-Dienst?
Antworten:
SignalR ist insofern wie Socket.IO, als es Transportverhandlungen / Fallback unterstützt. Es ist ein Framework und kein Server, daher müssen Sie es auf einem Server hosten. Wir haben Hosts für ASP.NET, OWIN (z. B. Kayak) und Self-Host, sodass Sie es problemlos in Ihrem eigenen Prozess ausführen können, z. B. einen Windows-Dienst.
SignalR unterstützt Clients für Browser (JS), .NET, Windows Phone 7 und Silverlight. Es gibt auch Kunden für Dinge wie iOS, Mono Touch usw.
SignalR bietet Ihnen eine API auf einer viel höheren Ebene als Raw-Sockets. Dies ist der große Vorteil, der es Ihnen ermöglicht, Dinge wie "RPC" vom Server zu Clients auf Broadcast- (oder gezielte) Weise auszuführen.
quelle
Andere Implikationen
Ich habe beide Technologien verwendet und arbeite auf beiden Seiten der .NET / Node-Stacks.
Update - JQuery-Informationen wurden entfernt, da sie nicht mehr anwendbar sind
quelle
Die Entwicklung eines skalierbaren / thread-sicheren TCP-Servers ist möglicherweise keine leichte Aufgabe. Auf der anderen Seite gibt es im Internet sehr nette Ressourcen, um eigene zu gründen. Wenn Sie zum Beispiel nur nach netten Open-Source-WebSocket-Projekten suchen, wäre mein Rat;
Alchemieprojekt : Open Source C # WebSocket Library
Fleck-Projekt : Open Source C # WebSocket Library
SignalR könnte nett sein, benötigt jedoch Windows Server 8 / IIS 8, um die WebSocket-Funktion bereitzustellen.
Auf der kommerziellen Produktseite empfehle ich PokeIn WebSocket und Reverse Ajax Library, insbesondere angesichts der Tatsache, dass die Websocket-Funktion nicht in allen Browsern verfügbar ist. Ab Version 2.0 ist der WebSocket-Server integriert. Details finden Sie hier
quelle