2011-11-18 16 views
6

PHPと実際の高速Webチャットを実装する方法は?PHPと実際の高速Webチャットを実装する方法は?

なぜFacebookのチャットが本当に本当に本当に速いのか誰もが不思議に思っていますか? WebSocketのないIEでも

JSでsetIntervalを使用して新しいメッセージをチェックする方法はありませんか?しかし、私はそれを感じる(Facebookのチャットボックス)のような即座の反応があります。

どのようにPHPでこのような素晴らしいことを実装するには?

+2

http://en.wikipedia.org/wiki/Comet_(programming)のようなものを使用します。 –

+1

何らかの理由で閉じ括弧がリンクの一部になっていない –

+1

@SimpleCoder彼らが彗星を使っていても、おそらく何らかのAJAXポーリングを行うでしょう。 –

答えて

7

あなたが記述している瞬間チャットは、一般的に「ロングポーリング」と呼ばれるもの、またはAJAXについて話している場合は「彗星」(Wikipediatalks)です。ポーリングはApacheサーバーを壊す傾向がありますが、それに対処する特別なサーバーがあります(APEなど)。私は確信していませんが、あなたはNodeJSと同じことをすることができ、NGINXはストレスをかなりうまく処理すると思います。

HereここでPHP jQueryとAJAXで長いポーリングチャットを実装する方法についての記事です。

最高の運があり、助けてくれることを願っています!

3

私は@ joseph-szymborskiに同意しますが、Flashおよび/またはロングポーリングでWebSocketにフォールバックするWebSocketソリューションを見るのは意味があります。

は、ここではいくつかの関連のSOの質問です:

あなたがPHPで仕事をしたいか、共有ホスティング上にある場合、私はhosted realtime web solutionを見てお勧めします。

0

PHP/AJAXによるロングポーリングは、サーバーに負荷をかける可能性があるため、Node.jsをクライアントに「リアルタイム」で提供すると考えてください。 しかし、実装自体はうまくいく作業です。ただ言って。 PHP/AJAXで長いポーリングを行うと、サーバーに負荷がかかる可能性があります。同じの

私の典型的な理論的な実装:

  1. は、データベースを照会するためのNode.jsサーバーを作成します。
  2. cURLを使用して変数やセッションデータをPHPからNode jsに送信します。
  3. Node.jsサーバーのurlを解析し、変数を使用して にデータベースの変更をチェックします。
  4. 変更が発生した場合に新しいデータを送信してクライアントに送信します。