問題タブ [comet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php と jquery を使用した簡単な彗星の例
PHP を使用したコメット テクニックの簡単な例を誰か教えてもらえますか?
永続的な HTTP 接続などを使用する例が必要です。私はポーリング手法を使用したくありません。そのようなセットアップがあり、リソースを大量に使用して管理するのが難しいだけでなく、. また、Apache ではなく IIS7 を使用しています。
この醜いポーリング手法から先に進むことができるように、良い例が非常に役立ちます。
erlang - Erlang(コメットチャット)のメッセージキューモデル?
Erlang でコメット チャットを行っています。メッセージ転送には 1 つの接続 (ロングポーリング) のみを使用します。しかし、ご存知のように、ロングポーリング接続は常に接続されたままにすることはできません。新しいメッセージが到着するか、タイムアウトに達するたびに、メッセージは中断され、サーバーに再度接続されます。接続が再接続される前にメッセージが送信された場合、チャットの整合性を維持するのに問題があります。
また、ユーザーが Comet-chat で複数のウィンドウを開いた場合、すべてのチャット メッセージは同期を維持する必要があります。つまり、ユーザーは多数のロング ポーリング接続を持つことができます。そのため、すべてのメッセージを時間どおりに配信し続けることは困難です。
接続ごとにメッセージ キューを作成する必要がありますか? または、これを解決するための他のより良い方法は何ですか?
http - ブラウザに応答する前に、タイムアウトを取得せずに安全に待機できる時間はどれくらいですか?
サーバーからクライアントへの「プッシュ」をエミュレートするためにロングポーリングで動作するチャットアプリケーションを作成しています。
基本的には、ブラウザが更新を求めてきて、何か新しいことがあれば返信します。それ以外の場合は、返信するものがあるまで、応答せずに接続を開いたままにします。
ここで、30 秒経過しても何も送信していない場合は、基本的に "NoNews" という応答を送信します。クライアントは再度ポーリングします。
私がやりたいことは、ブラウザが単にタイムアウトして私をあきらめる前に、できるだけ長く返信せずにこの接続を維持することです...各ブラウザのクライアントタイムアウトに関する適切なドキュメントが見つかりませんでした.そして、それはすべて同じではないようです...
ロングポーリングアプリケーションを作成した人はいますか?
最長の安全なタイムアウトは何ですか?
ありがとう!
java - 雰囲気APIを使用しますか、それともグリズリーを直接使用しますか?
雰囲気APIを使用するか、グリズリーを直接使用するかの違いがわかりませんか?説明できますか?
http - クライアントが切断されたときに HTTP プロキシ/FastCGI/SCGI が接続を閉じない - バグまたは機能?
私は長い XMLHttpRequest ポーリングを介してCppCMSフレームワークのコメット サポートに取り組んでいます。多くの場合、そのようなリクエストは、サーバーからの応答が返される前にクライアントによって閉じられます。たとえば、ページが閉じられたり、ユーザーが他のページに移動したり、ページが更新されたりします。
サーバー側では、接続が切断されたという通知を受け取ることを期待しています。FastCGI、SCGI、シンプルな HTTP プロキシの 3 つのコネクタを介してアプリケーションをテストしました。
3 つの主要な UNIX Web サーバー、Apache2、lighttpd、および Nginx から、最後の 1 つだけが期待どおりに接続を閉じ、アプリケーションが待機キューから要求を削除できるようになりました。これは、FastCGI コネクタと HTTP プロキシ コネクタの両方で機能しました。(Nginx にはデフォルトで scgi モジュールがありません)。
その他、Apache と Lighttpd は、接続を閉じたり、切断されたクライアントについてバックエンドに通知したりせず、クライアントがまだオンラインであるかのように処理を進めます。これは、サポートされている 3 つの API (FastCGI、SCGI、および HTTP プロキシ) すべてで発生します。
私はLighttpdの問題をオープンしましたが、さらに気になるのは、Apache -- lighttpd として成熟し、十分にサポートされている Web サーバーであり、クライアントが行ったサーバー バックエンドを公開していないという事実です。
質問:
- これはバグですか、それとも機能ですか? Web サーバーとアプリケーション バックエンド間の接続を閉じない理由はありますか?
- FastCGI/SCGI/HTTP-Proxy バックエンドを介してこれらのサーバーの背後で動作する実際の Comet アプリケーションはありますか?
- 上記が当てはまる場合、彼らはこの問題にどのように対処しますか? すべての接続を 10 秒ごとにタイムアウトできることは理解していますが、クライアントがリッスンしている限り、それらをアイドル状態に保ちたいと考えています。
ありがとう!
java - dwr彗星接近
http://directwebremoting.org/dwr/reverse-ajax/index.htmlから 、ポーリング、コメット、ピギーバックをサポートすると述べています。このアプローチを実装すると、コードを変更せずに構成でこの 3 つのオプションに変更できるということですか? dwr が実装する大気 API との違いは何ですか? dwr はすべての j2ee コンテナでも使用できますか?
java - コメット対パブサブ..?
これら2つのアプローチの違いは何ですか?素人の言葉で説明できますか?
ajax - 同じページから多くの AJAX リクエストを「多重化」することは可能ですか?
複数の AJAX リクエストを同時に行うページがあります。コメット モデルを使用しているため、常に複数の HTTP 接続が開いており、サーバーからの追加データを待機しています。将来、ページがより複雑になるにつれて、さらに多くのページが存在する可能性があります。接続を開きすぎるのが心配です。
それらを「多重化」する方法があるのだろうか。すべての要求が送信される単一の接続を持ち、メッセージをサーバー側とクライアント側の両方の適切なハンドラー関数にルーティングします。
これまでのところ、これを行う方法がわかりません.HTTPリクエストを作成してデータの待機を開始すると、それ以上のリクエストデータを送信することはできないと思います. 別の接続を開いてさらにデータを送信する前に、その接続を閉じることができますが、そのときにサーバーが応答を送信した場合はどうなるでしょうか?
私はしてはいけないことをしようとしていますか?