質問: 書き込み : ajaxでphpに接続し書き込みををデータベースに格納 レス表示 : ajaxでphpに1秒毎に接続しデータベース内のデータを受け取る 現在ajaxを使い上記のような処理をさせているのですが、 発言があった場合のみにphp側からデータを受け取るというような処理をしたいと考えています。 調べたところ comet という技術で可能になるようなのですが、 1. ajaxでリクエスト 2. 書き込みがあるまでPHP側で待機。書き込みがあった時データを返す 3. データを表示 2の処理のところでどういったようなコードを書いていけばよいのでしょうか
回答: 使うサーバ技術を変えることをおすすめします。その用途ですとNode.jsが良さそうです。 一般的なLAMPスタックは、リアルタイムウェブアプリを作るのに向いてません。 もし無理やり実現するならばいくつか考えられます。 * 何秒かごと(SleepやThread利用)にDBを見て、DBに変更があったら応答を返す(Long Polling、だが負荷が論外なほど高い) * PHPを単独で起動して常駐させ、Apacheをリバースプロキシとする。(PHPをAPサーバ化、だがここまでするならPHPを選ぶ理由があまりない)