首頁 >資料庫 >mysql教程 >如何使用 PHP 和 MySQL 即時確定使用者線上狀態:綜合指南。

如何使用 PHP 和 MySQL 即時確定使用者線上狀態:綜合指南。

Patricia Arquette
Patricia Arquette原創
2024-10-27 11:45:29835瀏覽

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

如何使用 Session 和 MySQL 確定用戶在線狀態

即時確定用戶是否在線對於各種應用程式至關重要。雖然為此目的使用會話是一種常見方法,但它需要找到一種最佳解決方案,能夠準確追蹤使用者活動,而不依賴基於時間的閾值。

實現此目的的一種方法是利用 Users 中的 lastActiveTime 欄位桌。每次使用者造訪頁面時都可以更新該欄位。透過定期查詢表中特定時間範圍(例如過去 5 分鐘)內更新的 LastActiveTime 的用戶,您可以確定目前誰在線上。

例如,使用MySQL 的NOW() 函數檢索伺服器-side time 確保跨時區的一致性:

<?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'];
?>

但是,要追蹤連續的使用者活動,請考慮實作JavaScript 以定期(例如每60 秒)對伺服器執行ping 操作。這樣,即使用戶沒有主動瀏覽網站,也會被標記為線上。

這是使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn