4 Stimmen

Websockets: teilen sie die Verbindung?

Wenn ich Anfragen für mehrere Ressourcen habe, teilen sie sich dann die Verbindung? Wenn ich also diese Anfragen habe:

  • ws://someserver.com/pfad/somedata1
  • ws://someserver.com/pfad/somedata2
  • ws://somsserver.com/anotherpath/someotherdata

Nach dem, was ich bisher gelesen habe, müsste ich 3 Websockets erstellen, um die Daten von diesen URLs zu erhalten. Alle Beispiele, die ich gesehen habe, öffnen eine Verbindung, holen die Daten ab und schließen die Verbindung. Aber wenn ich 3 Websockets erstellt habe, teilen sie sich (unter der Haube) eine einzige Verbindung zu someserver.com? oder sind es 3 separate Verbindungen? d.h. 3 Sockets auf jeder Seite des Links usw.

4voto

kanaka Punkte 66799

Es gibt eine laufende Diskussion in der Arbeitsgruppe über das automatische Muxen von Websockets-Verbindungen zum selben Server, aber es gibt keine existierende Implementierung mit Unterstützung dafür. Wenn Sie also drei Websockets-Verbindungen öffnen, erhalten Sie drei TCP-Socket-Verbindungen unter der Haube.

Wenn Sie jedoch sowohl den Client als auch den Server kontrollieren, gibt es wahrscheinlich keinen Grund für Ihre Anwendung, drei separate Verbindungen zu separaten URLs zu öffnen. Öffnen Sie einfach eine einzige Verbindung und geben Sie dann in Ihrem Anwendungsprotokoll die gewünschte Ressource an. Einer der großen Vorteile von WebSockets gegenüber HTTP-Verbindungen ist außerdem, dass die Verbindung offen bleibt und vollduplex bidirektional und nachrichtenbasiert ist. Aktuelle WebSocket-Anwendungen entscheiden sich häufig dafür, JSON-Nachrichten hin- und herzuschicken, aber sobald die WebSocket-Verbindung hergestellt ist, können Sie alles, was Sie wollen, hin- und herschicken (derzeit beschränkt auf das, was Sie in UTF-8-Strings kodieren können, aber Raw Binary wird in Zukunft unterstützt).

Die URL, die Teil der WebSocket-Verbindung ist, ist eigentlich nur ein weiterer Teil des WebSocket-Handshakes. Wenn es sich bei der Serverkonfiguration um einen Webserver handelt, der Verbindungen zu WebSockets-Servern aufrüstet, kann die URL verwendet werden, um auszuwählen, an welchen WebSockets-Server die Verbindung weitergegeben werden soll. Wenn Sie jedoch einen rohen WebSockets-Server haben, der die Verbindungen beantwortet, dann ist die URL nur ein weiterer Teil der Daten im Handshake und der Server kann entscheiden, was er mit der URL machen will.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X