ホームページ  >  記事  >  データベース  >  PHP と MySQL でユーザーのオンライン ステータスを効率的に追跡する方法は?

PHP と MySQL でユーザーのオンライン ステータスを効率的に追跡する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 13:31:30882ブラウズ

How to Efficiently Track User Online Status in PHP and MySQL?

PHP および MySQL でのユーザーのオンライン ステータスの確認

セッション追跡を利用して、この記事はユーザーのオンライン状態を確認する効果的な方法を確立することを目的としています。 present.

セッションのピギーバック

PHP セッションのピギーバックは便利なソリューションですが、タイムスタンプとタイムアウトに依存します。これらの制限を回避するために、ユーザー アクティビティの追跡を中心とした代替アプローチを検討します。

データベース ベースの追跡

データベースの "Users" テーブル内に、"lastActiveTime" を作成します。 " ユーザーの最後のインタラクションの時間をキャプチャするフィールド。このフィールドを継続的に更新すると、過去 5 分間など、指定された時間枠内の「lastActiveTime」を持つユーザーをクエリすることで、ユーザーのオンライン ステータスを判断できます。

タイム ゾーンの回避

プロセスを簡素化するには、タイムゾーンを考慮するのではなく、サーバーの時間を (MySQL の NOW() 関数経由で) 使用します。このアプローチは、アクティブ ユーザーをリアルタイムで追跡するための信頼できる方法を提供します。

継続的な更新

継続的なアクティビティの追跡が不可欠な場合は、次のメッセージを送信する JavaScript スクリプトを実装できます。毎分サーバーに「ping」を送信します。これにより、継続的なページの閲覧を必要とせずにユーザー アクティビティ レコードが更新されます。

更新されたコード スニペット

次の更新されたコード スニペットはフェッチを利用し、「ping」リクエストを処理することを約束します。

<code class="javascript">(async function ping() {
    // Asynchronously call stillAlive.php
    await fetch("stillAlive.php");
    // Issue this call again in 60 seconds
    setTimeout(ping, 60_000);
}());</code>

以上がPHP と MySQL でユーザーのオンライン ステータスを効率的に追跡する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。