私のウェブサイトのユーザーのオンラインステータスを表示したいと思います。最後のアクティビティの正確な分を表示する必要はありません。ただし、ユーザーが過去に5〜10分などのアクティビティを行ったことがあるかどうかを確認してください。
このシステムの作成を考えているときに私が抱えている問題は次のとおりです。
onlineUsersを使用してSQLテーブルを作成し、特定のページごと、またはxページごとにテーブルを更新した場合(SQLの更新が多すぎるのを防ぐため)、前回のアクティビティ以降の分数は確かにかなり正確になります。ただし、データベースとの接続が多すぎて、最終的にWebサイトの速度が低下します。
いくつかの賢い方程式を作成して、ユーザーにonlineUsers行を更新させるだけで、この問題をなんとか最小限に抑えることができます。たとえば、100ページのクリックごとに、phpから多くのリソースを必要としませんが、それでもそれを行うには不機嫌な方法です。
また、10分ごとにオンラインのユーザーをチェックし、すべてのテーブルを更新する、ある種のクロップリストシステムを統合することもできました。しかし、それがどのように機能するのか、実際にテーブルの行をIDで更新せずに、過去10分間にどのユーザーが正確にアクティブであったかを確認する方法がわかりません。
しかたがない。そのようなシステムはこれまでに何百回も作成されたと確信しています。したがって、誰かがそのようなシステムを作成するための最良の方法を教えてくれるはずです。データベースからのリソースはできるだけ少なくて済みます。
- 編集*私はユーザーのログインを設定するためにクッキーを使用しています。
助けてくれてありがとう :)