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.
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: Ссылка
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.
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 Ссылка
anund Ссылка (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.
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.
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:
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.
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.
Tags und Links javascript jquery ajax comet push