XMPP BOSH vs COMET

7

Ich möchte eine Echtzeit-Chat-Anwendung schreiben und muss entscheiden, welche Technologien verwendet werden sollen.

Was sind die Unterschiede zwischen diesen Technologien und welche bevorzugen Sie und warum?

WebSockets in keine Option, da es nicht bereit ist, in wild

zu kämpfen

Danke

    
Ahmet Recep Navruz 06.09.2011, 23:01
quelle

1 Antwort

28

Sie sollten die Frage lesen " Warum ist BOSH nicht besonders beliebt als Alternative zu WebSockets und Long-Polling ". kanaka gibt eine fantastische Antwort und ich bin mir sicher, dass damit die Bedenken angesprochen werden, die Sie bezüglich WebSockets haben. WebSocket sind absolut "bereit, in der Wildnis zu kämpfen".

BOSH und Kometen sind meiner Meinung nach dasselbe. BOSH steht für "Bidirektionale Streams über synchronem HTTP" und obwohl die BOSH-Spezifikation angibt:

  

BOSH, die in dieser Spezifikation definierte Technologie, bietet im Wesentlichen eine "Drop-In" -Alternative zu einer langlebigen bidirektionalen TCP-Verbindung. Es ist eine ausgereifte Technologie mit vollem Funktionsumfang, die seit 2004 weitgehend implementiert und eingesetzt wird. Nach unserem Kenntnisstand war sie die erste von vielen ähnlichen Technologien, die jetzt die im Bayeux-Protokoll sowie im Web-Socket-Protokoll und im Bayeux-Protokoll formalisierte Comet-Methode enthält Reverse HTTP.

Ich weiß, dass Comet-Server seit mindestens 2001 existieren, seit ich für eine Firma ( Caplin Systems ) gearbeitet habe hatte und habe immer noch einen Comet-Server.

Der Grund, warum ich sage, dass sie auf einer fundamentalen Ebene dasselbe sind, ist, dass sie sich beide auf zwei HTTP-Verbindungen verlassen haben (siehe unten). Der erste ist ein Rückkanal, bei dem es sich entweder um eine HTTP-Streaming-Verbindung handelt, die lange gehalten wird, oder um HTTP-Long-Polling. Die zweite Verbindung ist kurzlebig und wird zum Senden von Befehlen wie z. B. Abonnementanforderungen verwendet. Diese zwei Verbindungen ermöglichen die bidirektionale Kommunikation zu simulieren.

Auf fundamentaler Ebene verwenden BOSH und Comet also die gleichen Mechanismen für die Kommunikation zwischen Servern und Clients und Clients (Client ist ein Webbrowser oder ein anderer unterstützter Webclient). Wo BOSH sich unterscheidet, bietet es zusätzliche Details in seinem Protokoll und wurde mit XMPP entwickelt. Jeder Comet-Server könnte so entwickelt werden, dass er den in der BOSH-Spezifikation definierten Standards entspricht.

Alles in allem werden Comet- und BOSH-Server zweifellos alternative Transportmechanismen bieten. Dazu gehören HTTP-Streaming, HTTP-Long-Polling, Standard-HTTP-Polling und WebSockets.

Wenn Sie also die Details von BOSH und XMPP möchten, dann sollten Sie wahrscheinlich einen Technologie-Stack in Betracht ziehen, der mit BOSH und XMPP erstellt wurde. Wenn Sie einfache Nachrichten senden möchten, ohne die in BOSH und XMPP enthaltene zusätzliche Nutzlast, oder wenn Sie Ihren eigenen "Mehrwert" für Ihr eigenes Protokoll aufbauen wollen, dann ist wahrscheinlich etwas, das als Comet-Server bezeichnet wird, eine bessere Lösung.

>

Wenn Sie sich dafür entscheiden, einen vorhandenen Technologie-Stack zu verwenden, anstatt eine Lösung von Grund auf zu entwickeln, ist es sehr wahrscheinlich, dass die Lösung WebSockets verwendet, da sie einen standardisierten und effizienten bidirektionalen Kommunikationsmechanismus bieten. p>

Ich habe meinen ersten Versuch eines Echtzeit-Web-Technologie-Stack-Diagramms gemacht, das Sie unten sehen können. Hoffentlich hilft es ein bisschen:

Hier finden Sie eine Liste der Echtzeit-Technologien .

    
leggetter 07.09.2011, 11:04
quelle

Tags und Links