[PHP-users 466] Re: CHAT プログラムのリアルタイム仕様

Osamu Shigematsu php-users@php.gr.jp
Mon, 02 Jul 2001 22:43:51 +0900


重松と申します。大石さん、こんにちは。
> 
>  初めてプログラムを独習するにあたりPHPを選択いたしました。
> ただいまチャットプログラムを作成していますが、リロード機能に
> 関して手動や[setTimeout][location.reload()]を使用せずに
> submitされた情報を接続している全員に送信する方法はあるのでしょうか。
>  もしこのようなプログラムを作成可能であればご教授いただきたい
> と思っております。

基本的にはできないです。なぜならば、HTTP は情報の転送が終われば、すぐに接続
を切ってしまうからです。

そこで以前私が試みたのは、server push という手法です。これはセッションを張り
続けて、誰かが発言をしたら、それをその時点で送信する方法です。Netscape では
うまくいったのですが、IE ではしばらく発言がたまってから表示され、リアルタイ
ム性にかけるものになりました。

現実的な解決としては、発言が更新されていない場合に無駄な情報を送らないように
conditional-get に対応することくらいでしょうか?

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp