Benötige ich einen Server, um die WebSockets von HTML5 verwenden zu können?

78

Muss ich bei Verwendung von WebSockets Servercode schreiben? Mit anderen Worten, muss das JavaScript in meiner Clientanwendung eine Verbindung zu einem speziellen Server herstellen, oder funktioniert mein vorhandener Apache-Server, um dies zu unterstützen?

Cometta
quelle

Antworten:

20

Der Server muss Web-Sockets unterstützen. Nach einem ersten Handshake in HTTP öffnen der Server und der Client eine Socket-Verbindung. Der Server muss diesen Handshake verstehen und akzeptieren können.

In meinem letzten Projekt haben wir ziemlich erfolgreich Web-Socket-Verbindungen mit der letzten Jetty-Version ausgeführt.

27/02/2014: Jetzt implementiere ich auch Websockets unter .net mit XSockets.net und funktioniert wie ein Zauber, Sie brauchen nicht einmal einen Webserver (Self-Hosting). Die WebSocket-Implementierung von ASP.NET funktioniert auch recht gut.

Rafa
quelle
cwebsocket on github ist ein netter kleiner Server. Es ist einfach, es auch zu einem http-Server zu erweitern.
Minghua
6

Ja, Sie müssen Servercode schreiben.

Ich empfehle einen anderen Web-Socket-Server basierend auf PHP: Ratchet . Und dieser Link vergleicht webSocket-Server zwischen Ratchet und SockJS.

Eine vollständige Liste der clientseitigen und serverseitigen Codes und der Browserunterstützung finden Sie unter diesem Link

ShahRokh
quelle
5

Natürlich benötigen Sie einen WebSocket-Server. Es gibt jedoch viele kostenlose Websocket-Server in verschiedenen Sprachen, z. B. jWebSocket in Java und SuperWebSocket in .NET. Sie können diese direkt verwenden.

Kerry Jiang
quelle
2
Warum sagst du "natürlich", dass du einen Server brauchst? Es könnte Peer-to-Peer funktionieren, nicht wahr?
Jonathan Stark
@ JonathanStark Nr. Websocket sind nur Client / Server. Sie sind nicht Peer-to-Peer. Informationen zur Peer-to-Peer-Lösung finden Sie in der Webrtc-Spezifikation.
JAR.JAR.beans
Mein Fehler. Dachte an WebRTC. Das tut mir leid.
Jonathan Stark
5

Derzeit werden einige Plugins für Google Code für Apache entwickelt ...

Per Definition sind Websockets wie normale Sockets Client-Server. Ja, Sie benötigen einen Server. Es gibt jedoch eine Alternative zum Warten auf Apache-Plugins.

Ich verwende einen gehosteten Server http://www.achex.ca . Es ist kostenlos und Sie haben Tutorials in Javascript zur Verwendung des Servers. Ein guter Anfang für die Entwicklung von Websockets.

Der Server ist im Grunde ein Nachrichtenrouter, und Sie können eine Verbindung zu ihm herstellen und ihn als Treffpunkt für alle Ihre Websocket-Clients verwenden.

Kurze Antwort : Ja , Sie benötigen einen speziellen Server. Apache wird nicht mit Websockets geliefert.
ODER
Die Alternative finden Sie unter www.achex.ca .

AlexC_JEng
quelle
2

In einer solchen Situation kommt die Rolle des Servers, wenn:

In HTML 5 ist WebSocket wie ein Telefon (2-Wege-Kommunikation) und nicht wie ein Walky-Talky. http-Protokoll auf Websocket-Protokoll aktualisiert. (wss:// from ws://) Der SERVER sollte in der Lage sein, den Duplexkanal zu öffnen und daher der Duplexkommunikation zuzustimmen.

Bitte gehen Sie über diesen Link: http://www.html5rocks.com/en/tutorials/websockets/basics/

Wenn Sie PHP verwenden, schauen Sie bitte bei RATCHET nach.

Vielen Dank.

Sid
quelle
1

Der Perl Mojolicious-Server unterstützt Web-Sockets, und Implementierungen können nur wenige Zeilen lang sein.

Node.js verfügt über mehrere WebSocket-Bibliotheken, aber die Details der neuesten, besten und unterstützendsten der neuesten Spezifikation variieren. Wählen Sie sie daher sorgfältig aus.

Neben dem implementierten Stomp-Protokoll ist auch Apache Active MQ einen Blick wert.

LeeGee
quelle