ホームページ  >  記事  >  データベース  >  PHP と MySQL を使用してユーザーのオンライン ステータスをリアルタイムで確認する方法: 総合ガイド。

PHP と MySQL を使用してユーザーのオンライン ステータスをリアルタイムで確認する方法: 総合ガイド。

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-27 11:45:29734ブラウズ

How to Determine User Online Status in Real-Time Using PHP and MySQL: A Comprehensive Guide.

セッションと MySQL を使用してユーザーのオンライン ステータスを確認する方法

ユーザーがオンラインであるかどうかをリアルタイムで判断することは、さまざまなアプリケーションにとって重要です。この目的でセッションを使用するのは一般的なアプローチですが、時間ベースのしきい値に依存せずにユーザー アクティビティを正確に追跡する最適なソリューションを見つける必要があります。

これを実現する 1 つの方法は、Users の lastActiveTime フィールドを活用することです。テーブル。このフィールドは、ユーザーがページにアクセスするたびに更新できます。特定の時間枠 (過去 5 分など) 内で更新された lastActiveTime を持つユーザーのテーブルを定期的にクエリすることで、現在オンラインになっているユーザーを特定できます。

たとえば、MySQL の NOW() 関数を使用してサーバーを取得します。 -側時間により、タイム ゾーン間で一貫性が保証されます:

<?php
$query = "SELECT COUNT(*) AS online_count FROM Users WHERE lastActiveTime >= NOW() - INTERVAL 5 MINUTE";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
$onlineCount = $row['online_count'];
?>

ただし、継続的なユーザー アクティビティを追跡するには、60 秒ごとなどの定期的な間隔でサーバーに ping を送信する JavaScript の実装を検討してください。こうすることで、ユーザーがサイトをアクティブに移動していない場合でも、オンラインとしてマークされます。

fetch と Promise を使用した更新された JavaScript コード スニペットは次のとおりです。

<code class="js">(async function ping() {
  try {
    await fetch("stillAlive.php");
  } catch (error) {
    console.error(error);
  }
  setTimeout(ping, 60_000);
}());</code>

セッションとlastActiveTime フィールドを JavaScript ping メカニズムと組み合わせることで、時間ベースの基準に依存せずに、PHP および MySQL でユーザーのオンライン ステータスを効果的に判断できます。

以上がPHP と MySQL を使用してユーザーのオンライン ステータスをリアルタイムで確認する方法: 総合ガイド。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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