7

CometなしでWebサーバーにメッセージをWebブラウザに送信させることは可能ですか?

FacebookやGoogleなどのすべての主要なWeb企業は、この目的でCometを使用しており、主要なブラウザーでtcp接続が有効になっている場合、醜いハックが消えるのを待っているようです。

4

4 に答える 4

5

CometなしでWebサーバーにメッセージをWebブラウザに送信させることは可能ですか?

はい、Silverlight、Flex、Flash、およびJavaアプレットを介して可能です。

FacebookやGoogleなどのすべての主要なWeb企業は、この目的でCometを使用しており、主要なブラウザーでtcp接続が有効になっている場合、醜いハックが消えるのを待っているようです。

HTML5WebソケットのTCP接続では問題は解決しません。多くの人が職場、大学、学校からGoogleやFacebookを使用しており、ファイアウォールが非標準のポートや非HTTPトラフィックをブロックすることがよくあります。したがって、メッセージをWebブラウザーに送信するソリューションは、HTTPを介して機能する必要があり、多くの場合HTTPのように見えます。そのため、GoogleとFacebookはCometを使用しており、今後も使用を続けます。そうしないと、ユーザーの大部分にリーチできなくなります。実際、一部のファイアウォールとリバースプロキシは、長時間実行されるHTTP接続を閉じるため、フォールバックとしてAjaxポーリング接続がよく使用されます。Reverse Ajaxを介してブラウザーにメッセージを送信できるサーバーを探している場合は、StreamHubReverseAjaxのようなものを提案できます。

于 2009-09-25T22:20:09.790 に答える
2

別の方法があったら、なぜFacebookとGoogleがそれを行うと思いますか?

ええと、OK、他の方法があります。ページにJavaアプレットを埋め込むことができます。Javaアプレットが署名されていて、ユーザーがJavaアプレットに許可を与えると、サーバーがイベントを送信するための長時間実行接続を開く可能性があります。しかし、それにより、より壊れやすく、より多くのユーザーインタラクションが必要で、起動が遅く、Cometよりも少ないプラットフォームで動作するものが得られます。

サーバーから送信されたイベントWebソケットをHTML5に追加することについてはいくつかの議論がありましたが、これは非常に予備的なものであり、おそらく標準にはなりません。

于 2009-05-03T00:28:29.170 に答える
2

「Comet」は、既存のhttpプロトコルを使用してデータのプッシュをシミュレートするものを表す人工的な用語であるため、できることは何もないのではないかと思います。

唯一の解決策は、現在のプロトコルの「拡張」か、広く使用されているおそらくプラグインベースの解決策です...そのためにJavaを使用できます。ただし、基本的にそのブラウザで着信接続を利用できるようにする必要があるため、これにより他の問題が発生します。

于 2009-05-03T00:31:10.987 に答える
2

コメットは、長いポーリングのajax呼び出しとして実装できるため、セマンティクスの問題になります。 ここでは、たとえば、 jQueryのajax呼び出しの上にBayeuxプロトコルを使用してCometを実装するjqueryプラグインがあります。

于 2009-05-03T00:43:22.783 に答える