Rumah >pangkalan data >tutorial mysql >Cara Menentukan Status Dalam Talian Pengguna dalam Masa Nyata Menggunakan PHP dan MySQL: Panduan Komprehensif.

Cara Menentukan Status Dalam Talian Pengguna dalam Masa Nyata Menggunakan PHP dan MySQL: Panduan Komprehensif.

Patricia Arquette
Patricia Arquetteasal
2024-10-27 11:45:29835semak imbas

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

Cara Menentukan Status Dalam Talian Pengguna dengan Sesi dan MySQL

Menentukan sama ada pengguna dalam talian dalam masa nyata adalah penting untuk pelbagai aplikasi. Walaupun menggunakan sesi untuk tujuan ini ialah pendekatan biasa, ia memerlukan mencari penyelesaian optimum yang menjejaki aktiviti pengguna dengan tepat tanpa bergantung pada ambang berasaskan masa.

Salah satu cara untuk mencapainya ialah dengan memanfaatkan medan lastActiveTime dalam Pengguna meja. Medan ini boleh dikemas kini setiap kali pengguna mengakses halaman. Dengan menanyakan jadual secara berkala untuk pengguna dengan lastActiveTime yang dikemas kini dalam tempoh masa tertentu (cth., 5 minit yang lalu), anda boleh menentukan siapa yang sedang dalam talian.

Contohnya, menggunakan fungsi NOW() MySQL untuk mendapatkan semula pelayan -masa sampingan memastikan konsistensi merentas zon waktu:

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

Walau bagaimanapun, untuk menjejaki aktiviti pengguna yang berterusan, pertimbangkan untuk melaksanakan JavaScript untuk melakukan ping ke pelayan pada selang masa yang tetap, seperti setiap 60 saat. Dengan cara ini, pengguna ditandakan sebagai dalam talian walaupun mereka tidak menavigasi tapak secara aktif.

Berikut ialah coretan kod JavaScript yang dikemas kini menggunakan fetch and promises:

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

Dengan memanfaatkan sesi dan medan lastActiveTime, digabungkan dengan mekanisme ping JavaScript, anda boleh menentukan status dalam talian pengguna dengan berkesan dalam PHP dan MySQL tanpa bergantung pada kriteria berasaskan masa.

Atas ialah kandungan terperinci Cara Menentukan Status Dalam Talian Pengguna dalam Masa Nyata Menggunakan PHP dan MySQL: Panduan Komprehensif.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn