2015-11-02 5 views
5

Ist es möglich, ein Javascript-Programm zu erstellen, die Verbindung zu einem einfachen C# -Server mit einem einfachen Socket und kein WebSocket.Verbindung mit C# Server von Javascript

können Sie mir mit einer Probe helfen.

+0

JavaScript läuft wo? In einem Browser? In einer Konsole? Auf einem Server? –

+0

JavaScript in einem Browser ausgeführt –

+2

Nein, Sie können keine Socket-Verbindung im Browser verwenden, Zugriff Socket direkt aus dem Browser wird nie passieren, weil es ein großes Risiko eröffnet. – SilentTremor

Antwort

1

Es gibt keine Standardmethode zum Herstellen einer TCP-Verbindung über den in einem Webbrowser ausgeführten JavaScript-Code. (Siehe die Antwort von @Johannes Hahn)

Um zwischen Ihrem Client und Server zu kommunizieren, erwägen Sie Microsofts SignalR Bibliothek. Es ist so konzipiert, dass ein Javascript-Programm, das im Browser ausgeführt wird, die Kommunikation mit einem C# -Server ermöglicht. SignalR wird Websockets verwenden; Es funktioniert jedoch weiterhin, wenn Websockets nicht verfügbar sind, indem auf andere Transporte zurückgegriffen wird. Sie können auch Transporte angeben, wenn Sie verhindern möchten, dass WebSockets verwendet werden.

Die SignalR-Verbindung startet als HTTP und wird dann zu einer WebSocket-Verbindung hochgestuft, wenn sie verfügbar ist. WebSocket ist der ideale Transport für SignalR, da es den Serverspeicher am effizientesten nutzt, die geringste Latenzzeit aufweist und die grundlegenden Funktionen (wie Vollduplex-Kommunikation zwischen Client und Server) aufweist, aber auch die höchsten Anforderungen erfüllt : WebSocket erfordert, dass der Server Windows Server 2012 oder Windows 8 und .NET Framework 4.5 verwendet. Wenn diese Anforderungen nicht erfüllt sind, wird SignalR versuchen, andere Transporte zu verwenden, um seine Verbindungen herzustellen.


Beachten Sie auch, dass, wenn Ihr Javascript nicht läuft in einem Web-Browser ist, Sie regelmäßige Netzwerkverbindungen herstellen können. Zum Beispiel eine Javascript-Anwendung, die auf Node.js läuft.

0

Im Prinzip keine. Aus Sicherheitsgründen erlauben Browser nur eine begrenzte Anzahl von Protokollen. Chrome hat eine Socket-API, aber das ist kein Standard - https://developer.chrome.com/apps/sockets_tcp. Es gibt Lösungen, die eine WebSocket-Verbindung zu einem Server verwenden, der dann eine TCP-Socket-Verbindung herstellt, z. https://github.com/kanaka/websockify, http://artemyankov.com/tcp-client-for-browsers/, wenn Sie WebSocket nicht direkt zum Server hinzufügen können, sollten Sie diese überprüfen.