- ベストアンサー
PHP
チャットを改良して、サイトにリアルタイムメンバー表を作りたいのですがPHPはまだあまり詳しくないのでダウンロードできるところorソースを教えてください。 ダウンロードは無料でお願いします…
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
PHPだけで真の意味の「リアルタイム」を実現するのは意外と難しいです。私もやってみたことが幾度もありますが、難しいですね。 私が思いつけるものは6つほど... 1.直近*分でアクセスした人数を表示する アクセス毎にデータベースやファイルにアクセスを記録し、過去*分以内にアクセスしたIPの数等を数える方法です。 リアルタイムではないですが、一番簡単な方法です。 2.JavaScriptのsetIntervalを使って定期的にアクセスログ用のphpにリクエストを送信する [1]ではアクセス後にリロードせず放っておいた場合に更新されません。なので[1]のログ用スクリプトを別のファイルとして設置し、JavaScriptを使って定期的にリクエストを発生させます。 レスポンスを過去*分以内にアクセスしたIPの数等し、どこかの要素を毎回書き換えるようにすれば[1]よりはリアルタイムっぽくなります。 が、まだこれもリアルタイム 3.Flashを使ってSocket通信を行い、新しいIPの入退室をサーバーに通知する [2]にさらにFlashを付け加えsocket通信を使ってリアルタイムにする方法ですSocketはhttpと違い常時サーバーと接続されています。 なので接続中/接続切断がちゃんと把握できます。ただし、PHPでSocketのサーバーを作るのはちょっと難しいし、Flashが要求されます。 4.node.jsを使って[3] node(.js)はサーバーサイドでJavaScriptを使えるスグレモノで、これを使えばJavaScriptだけでSocket通信が行えます。 ただし、サーバーサイドにnodeのインストールを行うため、奥の手を使わない限りroot権限が必要です。 5.PHPでがんばる あまりおすすめできない方法です。レンタルサーバーだと解約されるかも... Comet通信と呼ばれるほぼリアルタイム通信があります。これは無限ループやsleepを使って新しい情報が届くまで送信を止める方法です。JavaScriptと組み合わせて使いましょう? かなり[3]や[4]と近い反面、ちょっと汚い方法であったり、色々とサーバーが迷惑です。PHPだけでするのであれば一番現実的ですが... 6.あとはレンタルブログパーツ ぼくがjsもphpもつかえなかったころはこれをつかってたよ → whos.amung.us とにかく、PHPだけで実現するのは難しく、また完成したソースは全く存在しない現状です。 しかし以上の方法は全て詳しく解説されているサイトがあったはずですので、自分やサービスに合った方法を選んでみて下さい!