• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:現在の観覧人数を表示したい)

現在の観覧人数表示方法と取得速度・実用度

このQ&Aのポイント
  • 現在の観覧人数を表示する方法として、トップページや特定ページ、サイト全体の情報を取得する方法があります。
  • トップページにおける現在の観覧人数は、サイトにアクセスがあるたびにカウンターを加算して表示する方法が一般的です。
  • 特定ページにおける現在の観覧人数は、ページごとにカウンターを用意し、アクセスがあるたびにカウントアップする方法があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

方法の1つを書いておきます。 過去10分間のアクセス人数(IPアドレスの個数)を調べて、それを現在のアクセス人数とみなすという話です。 大規模サイトで実際に使用した方法です。 -- HTTPは接続しっぱなしじゃないですから、 リアルタイムな接続数を数えることはできません。 ですが、以下のようにするとリアルタイムな感じが出ます。 Webサーバのアクセスログを開いて、 書かれている日時が例えば過去10分間になっているアクセスを数えます。 一般にアクセスログは巨大で日時の文字列を解釈するのに時間がかかりますから、 アクセスログの例えば末尾10000行を処理します。 (10分間のアクセス数にあわせて調整します。) -- 上記はここで書いた回答です。 http://okwave.jp/qa3270382.html

kash0987
質問者

補足

回答していただきありがとうございます。 >> 過去10分間のアクセス人数(IPアドレスの個数)を調べて、それを現在のアクセス人数とみなすという話です。 一般にアクセスログは巨大で日時の文字列を解釈するのに時間がかかりますから、アクセスログの例えば末尾10000行を処理します。 なるほど、アクセスログですか! 日時ではなく、アクセス数に応じた末尾の行数で処理をするのが、負荷軽減のポイントなのですね。大人数にも対応できそうですし、実用度がとても高そうです。 勉強になります、ありがとうございました。 補足: 質問後に気になったのですが、チャット部屋などに配置されている人数を数える方法はどのような感じなのでしょうか。 「○○さんが退出しました」 のようにリアルタイムで表示されるやつです。 ( ajaxで前回リロードした時間以降のアクセスログを取得して再リロードを繰り返す? ) お分かりになる方がいらっしゃいまいたら、合わせて教えていただけないでしょうか。 また、アクセスログ以外の方法もご存知であればお願いします。