Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách dễ nhất để xác định xem người dùng có trực tuyến không? (PHP / MYSQL)

Đừng bận tâm với việc tìm ra sự khác biệt giữa các múi giờ. Điều đó không cần thiết.

Bất cứ khi nào người dùng truy cập một trang, hãy cập nhật một trường trong bản ghi của họ về bảng Người dùng được cập nhật lần cuối. Sau đó, thực hiện một truy vấn cho tất cả người dùng có thời gian cập nhật lần cuối trong vòng 5 phút qua. Hơn thế nữa, và chúng được coi là "ngoại tuyến".

Nếu bạn sử dụng thời gian máy chủ của mình, thông qua hàm NOW () trong MySQL, bạn sẽ tính toán từng bước sự khác biệt giữa các múi giờ.

Đây là cách tiêu chuẩn để theo dõi số lượng người dùng hiện đang trực tuyến (Có nghĩa là, hoạt động trong vài phút qua).

Cập nhật liên tục

Nếu bạn muốn biết chúng vẫn hoạt động ngay cả khi chúng không nhảy từ trang này sang trang khác, hãy bao gồm một chút javascript để ping máy chủ của bạn cứ sau 60 giây hoặc lâu hơn để cho bạn biết chúng vẫn còn sống. Nó sẽ hoạt động theo cách giống như đề xuất ban đầu của tôi, nhưng nó sẽ cập nhật hồ sơ của bạn mà không yêu cầu họ phải điên cuồng duyệt trang web của bạn ít nhất năm phút một lần.

var stillAlive = setInterval(function () {
    /* XHR back to server
       Example uses jQuery */
    $.get("stillAlive.php");
}, 60000);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để có được nhiều số với một truy vấn SQL?

  2. Gặp sự cố khi thực thi mysqli_query

  3. Chỉ thêm một giá trị vào bảng trong sql

  4. ElasticSearch sông JDBC MySQL không xóa bản ghi

  5. CHỌN tất cả các bản ghi 30 ngày tuổi