Cometはアーキテクチャスタイルであり、Websockets/HTTP Streaming/SSE/BOSH/Bayeuxはこのアーキテクチャスタイルの異なる実装ですか?リアルタイムシステム用の彗星とは何ですか?
答えて
用語「"Comet"」は、「Ajax」という用語でジョークとして生まれました。
AJAX(Asynchronous JavaScript and XMLとして)は、HTTPリクエストを実行し、ブラウザのJavaScriptエンジンからのHTTP応答を処理する手法です。 当時、「Ajax」もクリーニング製品でした。
AJAXを使用している開発者は、サーバ側イベントのブラウザに低レイテンシの配信を実行する手法を検討し始めたときに、「Comet」という語句was coinedが「Comet」という時点では、 Ajax "クリーニング製品、" Comet "テクニックは「Ajax」テクニックより優れていました。
「Comet」は、クライアント(通常はブラウザ)に非常に短い待ち時間(1秒未満)のサーバー側イベントを通知するために使用される一連のWeb用HTTP技術です。
「ロングポーリング」はそのような手法の1つで、おそらく最も一般的で信頼性の高い手法です。 他のそのようなテクニックには、HTTP/1.1のTransfer-Encoding: chunked
メカニズムを使用した、「隠されたiframe」、「スクリプトインジェクション」(別名JSONP)、「無限レスポンス」(別名「ストリーミング」)テクニックが含まれます。
現在、Server Sent Events(SSE、別名EventSource)は、標準化されたストリーミング技術ですが、最近はあまり開発されていません。 Transfer-Encoding: chunked
メカニズムを使用するのではなく、SSEはブラウザが実装するContent-Type: text/event-stream
を使用し、HTTPトランスポートメカニズムの上に単純なプロトコルを使用します。つまり、サーバーから提供されるコンテンツには、この単純なプロトコルで定義された形式があります.JavaScriptエンジンに渡されるイベントに変換されるためにはブラウザによって解析される必要があります。アプリケーションには、これらのJavaScriptイベントに適用されます。
BOSH(XEP-0124で定義されています)は、特にXMPPで使用されるロングポーリング手法の変種であり、あまりにも「彗星」技術です。
Bayeuxは、HTTPや用WebSocketなどのトランスポートプロトコルの上にセマンティックチャネルとメッセージを定義するトランスポートに依存しないプロトコルです。 CometDプロジェクトは、HTTPとWebSocketの上でBayeuxを使用して、アプリケーションにピアツーピア、パブリッシュ・サブスクライブ、およびリモート・コールfunctionalitiesを提供します。他のプロジェクトでは、HTTPまたはWebSocket(またはその両方)の上でBayeuxプロトコルを使用します。
最後に、WebSocketは、HTTPにはない双方向機能を内蔵したトランスポートプロトコルです。 しかし、それはトランスポートするペイロードの意味を定義するものではなく、それを記述するメタデータを持っているため、通常Bayeuxなどの他のプロトコルのトランスポートプロトコルとして使用されます。 WebSocketはHTTPに基づいていないため、 "Comet"技術ではありません。
「アーキテクチャ」という言葉の意味にかかっています。
私は、「Comet」は、HTTPを使用して低レイテンシのイベントを実現するための技術群です。
ロングポーリング、HTTPチャンクストリーミング、SSE、BOSHは、これらの「彗星」技術の一部です。
Bayeuxは、メッセージングに使用されるJSONに基づいたトランスポートに依存しないプロトコルです。
WebSocketは、Bayeuxのような一般的にトランスポートに依存しない他のプロトコルと組み合わせて使用される双方向トランスポートプロトコルです。ブラウザーでのそのサポートは、 "Comet"技術の代わりになります。
- 1. 彗星対pubsub ..?
- 2. 彗星Javascriptのエラー
- 3. dwr彗星のアプローチ
- 4. ウェブソケットの代替使用法(彗星を除く)は何ですか?
- 5. 彗星のパフォーマンスの問題
- 6. 移植可能で軽量な彗星サーバーの実装は何ですか?
- 7. 彗星なしのJqueryリアルタイムチャート
- 8. 彗星のない逆Ajax?
- 9. 彗星の接続タイムアウト
- 10. Apacheのmodプロキシとtomcatの彗星
- 11. 彗星サーバーの選択と展開
- 12. 彗星サーバーとXMPPサーバーの違い
- 13. 彗星ヒントを使用して.Net
- 14. ポーリング、彗星、WebSocketsなど
- 15. ASP.NET AsyncHttpHandlersを持つ彗星
- 16. DWR 2〜DWR 3彗星
- 17. 彗星の実装方法は?
- 18. 長いポーリング(彗星)でHttpURLConnectionのタイムアウト - android
- 19. PubSub JavaでのEventBus(彗星様式)
- 20. 開始方法:Javaでの彗星プログラミング
- 21. データベース側の彗星を実装する
- 22. Djangoページアップデートajaxまたは彗星
- 23. Asynchronous Pagesを使用したASP.NETでは、彗星は簡単ですか?
- 24. 彗星はspludoフレームワークで簡単に使えますか?
- 25. 彗星のためのクライアントサイドのテクニック
- 26. PHP - 彗星のメモリの問題
- 27. JavaScript非表示のiFrame彗星
- 28. Ajax彗星 - 遅い次のリンク
- 29. GWT彗星の雰囲気を使用する
- 30. RTMPは彗星より優れていますか?