アプリ版:「スタンプのみでお礼する」機能のリリースについて

ページにアクセスがあった時点での、自サイトを観覧している人の数を表示したいのですが、どのような方法があるのか教えていただきたいです。


http://sample.com/  のサイトを運営していると仮定した場合

(1) トップページにおける現在の観覧人数 ( http://sample.com/ )
(2) 特定ページにおける現在の観覧人数  ( http://sample.com/hoge.html )
(3) サイト全体における現在の観覧人数


これらの情報は取得できるのでしょうか?取得方法はphpに限らなくてもよろしいです。方法が複数あるようでしたら、複数の方法を教えていただきたいです。 (おおまかな取得速度・実用度も添えて頂けると助かります)

環境: php5 + mysql5

A 回答 (1件)

方法の1つを書いておきます。


過去10分間のアクセス人数(IPアドレスの個数)を調べて、それを現在のアクセス人数とみなすという話です。
大規模サイトで実際に使用した方法です。

--
HTTPは接続しっぱなしじゃないですから、
リアルタイムな接続数を数えることはできません。
ですが、以下のようにするとリアルタイムな感じが出ます。

Webサーバのアクセスログを開いて、
書かれている日時が例えば過去10分間になっているアクセスを数えます。

一般にアクセスログは巨大で日時の文字列を解釈するのに時間がかかりますから、
アクセスログの例えば末尾10000行を処理します。
(10分間のアクセス数にあわせて調整します。)

--
上記はここで書いた回答です。
http://okwave.jp/qa3270382.html

この回答への補足

回答していただきありがとうございます。

>> 過去10分間のアクセス人数(IPアドレスの個数)を調べて、それを現在のアクセス人数とみなすという話です。
一般にアクセスログは巨大で日時の文字列を解釈するのに時間がかかりますから、アクセスログの例えば末尾10000行を処理します。


なるほど、アクセスログですか!

日時ではなく、アクセス数に応じた末尾の行数で処理をするのが、負荷軽減のポイントなのですね。大人数にも対応できそうですし、実用度がとても高そうです。

勉強になります、ありがとうございました。



補足:
質問後に気になったのですが、チャット部屋などに配置されている人数を数える方法はどのような感じなのでしょうか。

「○○さんが退出しました」 のようにリアルタイムで表示されるやつです。
( ajaxで前回リロードした時間以降のアクセスログを取得して再リロードを繰り返す? )

お分かりになる方がいらっしゃいまいたら、合わせて教えていただけないでしょうか。

また、アクセスログ以外の方法もご存知であればお願いします。

補足日時:2007/11/22 16:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!