PHPを使って、彗星のテクニックの良い例を教えてもらえますか?PHPとjqueryを使ったシンプルな彗星の例
永続的なHTTP接続などを使用する例が必要です。私はポーリング技術を使用したくないのです。なぜなら、私はそのような設定をしているだけでなく、リソースを大量に使いこなして管理することが難しいからです。また、私はIIS7ではなくApacheを使用しています。
私はこの醜いポーリング技術から進めることができるので、良い例が本当に役立つでしょう。
PHPを使って、彗星のテクニックの良い例を教えてもらえますか?PHPとjqueryを使ったシンプルな彗星の例
永続的なHTTP接続などを使用する例が必要です。私はポーリング技術を使用したくないのです。なぜなら、私はそのような設定をしているだけでなく、リソースを大量に使いこなして管理することが難しいからです。また、私はIIS7ではなくApacheを使用しています。
私はこの醜いポーリング技術から進めることができるので、良い例が本当に役立つでしょう。
このテクニックを使用してトピックのWikipedia articleを勉強したことはありませんでしたが、「ロングポーリング」は実行可能な唯一の解決策のようです。サーバー上のスクリプトを無限にループしたりスリープさせたりすることで実装するのは簡単です。ウィキペディアの記事からリンクされているHTTP Streaming pageにはactual codeがあります。
これを試しましたか特定の問題が発生しましたか?
このarticleを見ることができます。これは、彗星プログラミングの概念を理解する上でとても良いスタートです。
2つの例があります。最初のものはiframeテクニックを使用し、2つ目は永続的な接続を使用します。
あなたは、ポーリングを使用する、または特別良いJSバックエンドで、長い要求とCOMETのために考案されたWebサーバーを使用する必要があります。
function listen() {
$.get("/mylongrequestfile", {}, function(data) {
$("#mydiv").html(data);
listen(); // then launch again
}));
};
はCOMETは、データリターンがあるかどう、データを待つ」であることを忘れないでくださいJSバックエンドはデータを解析し、サーバーに問い合わせるプロセスを再起動する必要があります。サーバ側の問題やユーザ側からだけ断線がある場合、プロセス全体が破壊される。この例では
、(要求が成功した場合関数のみ呼ばれる)
+1素晴らしいコードですが、リクエストの間にこのスリープをすることをお勧めしますか? –
サーバ自体が 'sleep'効果を出さなければならないので、サーバは応答を出す前にそれらのいずれかが起こるまで待ちます(1-新しいデータが見つかりました、2-要求がタイムアウトしました) – MhdSyrwan
IISについては、ありますWebSync。 PHPを使用しているので、WebSync On-Demandを使うほうが良いでしょう。いずれにしても、あなたが探しているサーバープッシュを提供し、使いやすいです。 this questio nもチェックしてください。これは基本的にはあなたの後です。
a simple example of WebSync On-Demand in actionここではなしスクリプト言語を使用しています。 2つのウィンドウを開き、公開/購読を実際に見てください。
サーバーから公開するには、PHP apiを使用できます。
私はあなたが彗星で始めることができる非常に簡単な例があります。 NHPMモジュールを使用してNginxをコンパイルし、jQuery、PHP、およびBashで単純なパブリッシャ/サブスクライバのロールを記述します。
http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/
作業例(簡単なチャット)
は、ここで見つけることができます:チェックこのアウト:How to implement COMET with PHP。
これはJQueryを使用していません。これはPHPとPrototypeを使って作られています。それは非常に理解しやすいです。これを見てから簡単にJQueryスクリプトを作れると思います。
私はこのビデオhttp://www.screenr.com/SNH
はロングポーリング(彗星)を実装するため、このデモビデオをチェック鑑賞することをお勧めいたします。.. それはあなたのすべて
を助けるかもしれない
getclicky.comように見えますポーリング方法を使用するとかなり成功しました –