Server Push: Komet vs Affe?

8

Ich habe ein wenig über Kometen und auch APE gelesen.

Welcher ist besser? Ich möchte, dass die Nutzer anderen Nutzern aktualisierte Inhalte anzeigen. Wie Google Wave.

Und im Kometen gibt es zwei Versionen: Iframe vs traditionelle Ajax. Was ist der Unterschied und was ist besser? Ich verstehe es nicht ganz.

Danke.

    
ajsie 02.01.2010, 12:06
quelle

8 Antworten

16

Comet ist eine Reihe von Techniken, die für die Entwicklung von Echtzeitanwendungen nützlich sind. Sie haben zwei Hauptimplementierungen: Streaming und langes Polling.

Bei normalen http Anfragen sendet der Benutzer die Anfrage an den Server, empfängt die Daten (html, scrips, etc) und schließt die Verbindung - Ende der Geschichte. Beim Streaming wird die Verbindung niemals vom Client oder vom Server geschlossen, es gibt eine einzige Verbindung, die von beiden Parteien geteilt wird.

Bei langen Abfragen haben Sie eine wiederkehrende Verbindung, die auf eine Antwort wartet. Grundsätzlich sendet der Browser eine Anfrage an den Server und wartet dort, bis der Server antwortet (der Server antwortet nur, wenn er neue Daten für den Client hat), dann wird die Verbindung geschlossen und es ist Aufgabe des Browsers, eine Verbindung wieder zu öffnen, und der Zyklus wiederholt sich :) Von den beiden ist dies der am häufigsten verwendete.

Comet benötigt im Browser in der Regel einen Webserver, der für eine große Anzahl von langlebigen HTTP-Verbindungen optimiert ist, und einen JavaScript-Client, der mit dem Comet-Server kommuniziert. Ape ist also ein installierbarer Server und Comet ist das Paradigma, auf dem es basiert. Hier haben Sie eine Liste von Kometenimplementierungen: Ссылка

    
Sofia 18.03.2010, 06:30
quelle
7

Komet = Überbegriff für die Technologie, auch bekannt als "Reverse Ajax" oder "Long Polling"

APE = Eine Implementierung der Comet-Technologie.

Sie können sich vorstellen, dass Comet eine bestimmte Automarke ist, während APE das Modell ist.

Siehe auch:

Ссылка

Ссылка

    
Christopher Tarquini 30.01.2010 14:00
quelle
3

Comet ist eine Technologie, APE ist eine von vielen Implementierungen. Was ist mit Iframe vs traditionellen Ajax? Verwenden Sie HTML5-WebSockets überall dort, wo Sie sie verwenden können.

Derzeit verwenden alle modernen Browser XMLHttpRequest für Ajax-Anfragen (Client-zu-Server, etwas zurück und Ende). Aber manchmal senden JS-Anwendungen Dateien über iframes und es ist in Ordnung. Nicht alle Implementierungen von XMLHttpRequests unterstützen Multipart-Datentransport (Chrome und moderne FF afaik). WebSockets wurde speziell für Comet-ähnliche Technologien entwickelt (wenn der Client nur eine Verbindung öffnet und der Web-Server einige Daten über den geöffneten Stream oder WebSocket an den Client sendet), verwenden Sie ihn, wenn Sie können.

BTW Ich empfehle Ihnen, einen unabhängigen Webserver für Ihre Comet-Streams (oder Kanäle) zu verwenden.

P.S. Ich mag APE.

    
Alex Yaroshevich 07.06.2011 17:39
quelle
2

Etherpad.com, das superschnelle Echtzeit-Dokumentfreigabetool, verwendet Comet, um nahezu Echtzeit-Bildschirmaktualisierungen von Kollaborationen anderer Redakteure bereitzustellen. Die Firma, die etherpad (AppJet) gerade von Google gekauft hat, um an Google Wave zu arbeiten

Sehen Sie sich Ссылка

an

und Ссылка (Open Source Etherpad), um deren Implementierung zu sehen.

Ich stimme für den Kometen wegen des kommerziellen Erfolgs von etherpad und der google wave-Implementierung mit Kometen.

    
Stewart Robinson 02.01.2010 13:04
quelle
2

Sehen Sie sich WebSockets an. Chrome und neuere Firefox unterstützen es bereits. Sie können auf den Kometen zurückgreifen, wenn Sie ihn wirklich in anderen Browsern benötigen.

    
Priit 03.01.2010 18:57
quelle
1

Ist APE nicht nur eine Implementierung von Comet? Das sagt man auf der Produktseite.

    
spender 02.01.2010 16:51
quelle
1

Ich denke, Sie möchten IFrame-basierte Techniken mit Ajax (XMLHttp) -basierten Techniken vergleichen.

Ich denke, der Hauptunterschied besteht darin, dass Sie den Antwortinhalt einer AJAX-Anfrage erst lesen können, wenn die gesamte Antwort vom Browser empfangen wurde. Das heißt, um Streaming zu simulieren, müssen Sie so etwas tun:

  1. Stellen Sie eine Anfrage an den Server
  2. Wenn Sie eine Antwort erhalten, lesen Sie die Antwort und machen Sie eine weitere Anfrage

Der Server kann die Anfrage halten, wenn noch nichts zurückgegeben werden soll.

IFrame-basierte Lösung hingegen kann mehrere script -Tags als Antwort auf eine einzelne Anfrage zurückgeben. Es muss keine weitere Anfrage gesendet werden, bis ein Timeout für die Zeitüberschreitung (Browser oder Server) vorliegt.

    
Tahir Akhtar 15.09.2010 13:47
quelle
1

APE ist eine Implementierung von Comet. Es stellt einen nicht blockierenden IO-Server und JS-Client-Bibliotheken zur Verfügung, um ein Publish / Subscribe-Messaging-System zu implementieren.

Der APE-Server selbst kann mit serverseitigem Javascript programmiert werden. Serverseitiger Code wie PHP / Ruby / was auch immer, kann Daten durch APE übertragen, indem er "Befehle" an den APE-Server ausgibt.

Verbundene Clients erhalten diese Daten, indem sie auf "Raws" hören. Das sind Ereignisse und Daten, die vom APE-Server an den Client gesendet werden.

    
HackaZach 13.04.2011 14:45
quelle

Tags und Links