コメットの実装に関して質問があります。サーブレット 3.0 の非同期機能を介して現在実現できるものと同様の非同期要求を処理するために使用されることを私は知っています。しかし、私が理解していないのは、呼び出し元のクライアントへのプッシュがどのように行われるかです。
Web ソケットでは、IP とポートを提供して接続を開きます。comet では、サーバーがデータをプッシュしたときにコールバックを受信するために、どのようにサーバーに接続しますか?
Comet(プログラミング)に関するウィキペディアのページは、この質問のかなり良いリソースです(申し訳ありませんが、それは非常に明白です)。
Cometは、HTTPを使用してクライアントとサーバー間の双方向接続をシミュレートするための総称です。最終的には、サーバーにHTTPリクエストを送信し、サーバーを開いたままにしようとします(長いポーリングとストリーミング)。ロングポーリングでは、指定された間隔の後、またはデータが返されたときに接続が閉じます。ストリーミングを使用すると、接続を可能な限り開くことができ、既存の接続を介して新しいデータが送信されます。
これらがどのように達成されるかはWebブラウザーによって異なります。そのため、Cometはハックとして分類されます。繰り返しになりますが、ウィキペディアのページには、必要なほとんどすべての情報が記載されているはずです。
リアルタイムWebコミュニケーションの歴史(クライアントに焦点を当てたもの)と、 WebSocketがゲームチェンジャーである理由をカバーする記事を書きました。