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

Kiểm tra xem người dùng có ở trên trang không

Về cơ bản, những thứ này hoạt động như sau.

Mỗi khi người dùng thực hiện hành động (làm mới cuộc trò chuyện, tin nhắn đã gửi, truy cập trang, v.v.), mã thông báo được liên kết với người dùng (mã thông báo được lưu trong máy chủ của bạn, chẳng hạn như DB) được cập nhật theo thời gian hiện tại.

| User ID     | Last action         |
-------------------------------------
| 14 (mark)   | 2012-02-09-10:34:53 |
| 56 (phil)   | 2012-02-09-09:12:34 |
|  9 (john)   | 2012-02-09-10:33:11 |

Và sau đó bạn quyết định một người dùng là trực tuyến nếu mã thông báo của anh ấy không quá cũ (5/10 phút?)

Bạn có thể cải thiện phương pháp này nếu bạn sử dụng AJAX để gửi yêu cầu định kỳ đến máy chủ sau mỗi 1 phút hoặc lâu hơn. Yêu cầu AJAX này cập nhật giá trị mã thông báo. Vì vậy, bằng cách này, bạn có thể biết người dùng cũng đang trực tuyến nếu anh ta không làm gì khác ngoài việc nhìn chằm chằm vào trang. Và khi anh ta thoát (đóng trình duyệt hoặc tab), cuộc gọi định kỳ AJAX ngừng hoạt động, vì vậy sau 5/10 phút người dùng được tuyên bố là ngoại tuyến .

Chúc bạn thành công!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết kế cơ sở dữ liệu tốt, số lượng thuộc tính thay đổi

  2. Phiên hoạt động bình thường trong Localhost nhưng không hoạt động trong CPANEL

  3. Lỗi nghiêm trọng:Không có ngoại lệ 'mysqli_sql_exception' với thông báo 'Không có chỉ mục nào được sử dụng trong truy vấn / câu lệnh chuẩn bị'

  4. Sự cố vẫn tiếp diễn một java.util.Date vào MySql bằng Hibernate

  5. Chèn dữ liệu từ cột của bảng và lưu trữ vào cột của bảng khác