2012-08-03 4 views
5

Für meine Website habe ich einen WebSockets Server in C# (am meisten bevorzugten Sprache zu codieren, in), die Fleck und es ist etwa 600 Zeilen Code verwendet. Alles scheint anständig zu arbeiten (ein wenig instabil manchmal aber. Nicht sicher, ob es ein Problem mit meinem Code oder Fleck ist).Moderne Lösung für WebSocket-Server?

Allerdings möchte ich das von meinem Computer zu einer tatsächlichen Domain bewegen, und ich bin nicht sicher, ob es irgendwelche Hosting-Provider, die .NET-Konsolenanwendungen wie das unterstützen würde.

Ich dachte, dass vielleicht würde ich es in einer anderen Sprache wie PHP neu zu schreiben, aber ich bin über die ganze Idee etwas unsicher. Gibt es beliebte Hosting-Anbieter, die das unterstützen, wonach ich suche? Und selbst wenn, ist das so eine gute Idee? Ich kann mir vorstellen, dass es weniger sicher oder langsamer als die typische Lösung mit Perl, PHP oder Python für Server ist. (viele P's)

Schließlich, wenn es eine gute Idee war, umzuschreiben, bin ich mir nicht sicher, in welcher Sprache ich es schreiben würde. Es ist eine Weile her und ich bin nicht sicher, was jeder noch benutzt. Wird PHP immer noch als am meisten unterstützt und sicher für Webserver angesehen?

Welche Implementierung WebSockets ist am besten geeignet? Es dauerte eine Weile, Fleck zu finden und es scheint doppelt so viel PHP-Derivate zu sein und ich fühle mich wieder ein wenig überwältigt. Auch viele Posts in Stackoverflow über WebSockets stammen aus zwei Jahren, als sie nicht so unterstützt wurden.

Sorry für meine Naivität und Mangel an Fokus in meiner Frage, aber wie Sie sehen können, bin ich ein bisschen verwirrt, was meine Vorgehensweise hier sein sollte und ich bin auf der Suche nach etwas Einblick. Danke fürs Lesen.

Antwort

5

Der wahrscheinlich beliebteste WebSocket-Server ist Socket.IO. Es wird in Node (Javascript) implementiert und hat Fallbacks auf Lang Polling/AJAX, wenn WebSockets Unterstützung ist nicht verfügbar.

Die am besten unterstützte Implementierung von WebSockets ist das Python-Projekt pywebsocket, das sowohl von Mozilla als auch von Google zum Entwickeln und Testen ihrer Client-Browser-Implementierungen verwendet wird. Darüber hinaus ist pywebsocket entwickelt, um mit Apache auf einfache Weise integrieren so dass Sie Ihren Web-Server und WebSocket-Dienst auf dem gleichen Port (s) laufen.

Wenn Ihre Anwendung nur einen WebSocket-basierten Messaging-Dienst benötigt und weitgehend Peer-to-Peer ist, können Sie einen kommerziellen WebSocket-Dienst wie Pusher verwenden. Das könnte Sie davor bewahren, Ihren eigenen Server dafür zu hosten und zu verwalten.

Ich würde nicht PHP für WebSocket-Server empfehlen. Bis vor kurzem gab es keine PHP-Implementierung, die sowohl die ältere als auch die neuere WebSocket-Protokollvariante unterstützte. Die ältere ist immer noch von aktuellen iOS-Geräten und die neuere IETF 6455 Version des Protokolls wird von Chrome, Firefox, Internet Explorer 10 und der Flash-basierter WebSocket polyfill web-socket-js verwendet.

auch fragen, ob PHP immer noch die meisten unterstützten betrachtet und für Web-Server sicher. Natürlich hat PHP immer großartige Dokumentation und Beispiele und eine sehr breite Implementierung, so dass Sie argumentieren konnten, dass es gut unterstützt wird. Allerdings liegt PHP in Bezug auf die Sicherheit am unteren Ende der Liste. Ich würde Ihre Anwendung sicherlich nicht von Grund auf in PHP umschreiben.

Wenn Sie Sprachen wie C haben, können Sie libwebsockets betrachten, die Sie verwenden könnten, um einen C- oder C++ WebSocket-Server zu erstellen.Andy Green entwickelte und pflegt Libwebsockets und nahm an der IETF-Arbeitsgruppe teil, die den Standard entwickelte.

Ruby ist eine andere Sprache/Gemeinschaft, die eine Menge von WebSockets (möglicherweise Sekunde hinter Node) gesehen hat. Die beliebteste Websocket-Bibliothek für Ruby ist em-weboskcet.

+1

Dies ist eine gute Liste, von meiner Seite würde ich hinzufügen, dass, wenn Sie Python verwenden möchten und ein wenig Unterstützung für Leistung (oder einfach eine minimalistische Lösung bevorzugen) handeln möchten, werfen Sie einen Blick auf gevent-websocket http: //www.gelens.org/code/gevent-websocket/ – Dreen

-1

Sie können node.js versuchen, „neu“ ist und es gut aussehen. Mit freundlichen Grüßen

+1

Knoten (node.js) hat (noch) keine eingebaute Websocket-Unterstützung. Vielleicht meintest du die sehr beliebte Socket.IO, die in Node implementiert ist. – kanaka