33

PHP を使用したコメット テクニックの簡単な例を誰か教えてもらえますか?

永続的な HTTP 接続などを使用する例が必要です。私はポーリング手法を使用したくありません。そのようなセットアップがあり、リソースを大量に使用して管理するのが難しいだけでなく、. また、Apache ではなく IIS7 を使用しています。

この醜いポーリング手法から先に進むことができるように、良い例が非常に役立ちます。

4

7 に答える 7

15

ポーリングを使用するか、長いリクエストと COMET 用に特別に考案された Web サーバーを使用し、適切な JS バックエンドを使用する必要があります。

function listen() {
    $.get("/mylongrequestfile", {}, function(data) {
        $("#mydiv").html(data);
        listen(); // then launch again
    }));
};

COMET は「データが返されて終了する場合はデータを待機する」ため、JS バックエンドはデータを解析し、サーバーに問い合わせるプロセスを再起動する必要があります。

この例では、サーバー側の問題またはユーザー側からの切断のみが発生した場合、プロセス全体が中断されます (関数はリクエストが成功した場合にのみ呼び出されます)。

于 2009-08-28T16:29:36.020 に答える
6

これをチェックしてください: How to implement COMET with PHP .
これはJQueryを使用していません。PHP と Prototype を使用して作成されます。とても分かりやすいです。これを見れば簡単にJQueryスクリプトを作成できると思います。

于 2010-10-27T05:51:52.873 に答える
3

コメットを使い始めるための非常に簡単な例をここに示します。NHPM モジュールを使用した Nginx のコンパイルについて説明し、jQuery、PHP、および Bash での単純なパブリッシャー/サブスクライバー ロールのコードが含まれています。

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

実際の例 (簡単なチャット) は、http:
//cheetah.jamieisaacs.com/にあります。

于 2010-08-31T07:03:56.610 に答える
2

この手法を使用したことがなく、このトピックに関するウィキペディアの記事を調べたことがなければ、「ロング ポーリング」が唯一の実行可能な解決策のように思えます。サーバー上でスクリプトを無限にループしてスリープ状態にすることで実装するのは非常に簡単に思えます。ウィキペディアの記事からリンクされたHTTP ストリーミング ページに実際のコードがいくつかあります。

これを試してみて、特定の問題に遭遇しましたか?

于 2009-08-24T05:33:19.287 に答える
1

この記事をご覧ください。comet プログラミングの概念を理解するための非常に良い出発点です。

そこには 2 つの例があります。1 つ目は iframe 技術を使用し、2 つ目は固定接続を使用します。

于 2009-08-25T09:59:45.027 に答える
0

IIS にはWebSyncがあります。ただし、PHP を使用しているため、 WebSync On-Demandを使用した方がよい場合があります。どちらも、探しているサーバープッシュを提供し、使いやすいです。この質問もチェックしてください。これは基本的にあなたが求めているものです。

これは、スクリプト言語を使用しないWebSync オンデマンドの動作の簡単な例です。2 つのウィンドウで開くだけで、パブリッシュ/サブスクライブの動作を確認できます。

サーバーから公開するには、PHP APIを使用できます。

于 2010-01-20T03:08:14.473 に答える