Tôi cần có khả năng phát hiện khi người dùng mất kết nối với ổ cắm, có vẻ như socket.on("disconnect")
đang được gọi khi tôi đóng máy tính xách tay của mình, vì vậy nó không chạy cuộc gọi ajax cần chạy để cập nhật cơ sở dữ liệu để đánh dấu người dùng là ngoại tuyến. Làm cách nào tôi có thể kiểm tra xem kết nối đã bị đóng hay chưa?Ổ cắm IO phát hiện khi máy khách bị mất kết nối
Trả lời
chúng tôi đã xem xét điều này quá và như đã đề cập ở trên sử dụng bộ đếm nhịp tim của riêng chúng tôi.
Ví dụ: máy chủ sẽ phát ra nhịp tim sau mỗi 5 giây (chúng tôi đơn giản gửi thời gian máy chủ). Khách hàng có thời gian chờ 11 giây nên có 2 cơ hội để nắm bắt nhịp tim. Nếu nó nhận được nhịp tim, chúng tôi sẽ đặt lại bộ hẹn giờ. Nếu chúng ta bỏ lỡ cả hai nhịp tim, chức năng timeout sẽ chạy và bạn làm bất cứ điều gì bạn muốn ở đó.
Khá đơn giản.
Như đã đề cập ở đây https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO, Socket.IO có cài đặt nhịp tim riêng. Nhưng mặc định là khoảng thời gian 25 giây và ngưỡng 60 cho kết nối bị mất.
Vì vậy, lời khuyên của tôi: Đặt các giá trị mặc định như bạn mong đợi khi thử nghiệm. Nếu không, bạn có thể bỏ lỡ ngưỡng.
Ví dụ:
socket.set("heartbeat timeout", 10);
socket.set("heartbeat interval", 5);
Đây phải là câu trả lời được chấp nhận. Nó hoạt động trên lần đầu tiên ... Trong trường hợp của tôi thời gian chờ và khoảng thời gian được thiết lập trong mili giây nên 10000 thay vì 10 ... Cảm ơn hoàn hảo! –
- 1. Phát hiện bất cứ khi nào ổ cắm bị ngắt kết nối bằng cách chọn()
- 2. Máy chủ IO ổ cắm vào máy chủ
- 3. trình duyệt android và ổ cắm io
- 4. Ổ cắm Java và các kết nối bị rơi
- 5. Kết nối máy khách IPv4 với máy chủ IPv6: kết nối bị từ chối
- 6. Kết nối lại kết nối ổ cắm Java khi ngắt kết nối
- 7. Truyền video qua ổ cắm và phát từ máy khách
- 8. Python: phát hiện khi một ổ cắm ngắt kết nối vì bất kỳ lý do gì?
- 9. tcpsocket kết nối lại (hoặc cách phát hiện ổ cắm kín)
- 10. Kết nối ổ cắm đã bị hủy bỏ - CommunicationException
- 11. C ổ cắm máy khách/máy chủ lag
- 12. Phát hiện gần kết nối máy khách trong node.js
- 13. Kết nối Ổ cắm TLS qua Nodejs
- 14. SignalR: phát hiện trạng thái kết nối trên máy khách
- 15. kết nối người dùng io ổ cắm được thêm vào mỗi lần làm mới trang html?
- 16. Cách kết nối máy chủ Ổ cắm qua proxy HTTP
- 17. Ổ cắm - Máy khách Java, Máy chủ C#
- 18. Làm thế nào để biết khi nào một Ổ cắm đã bị ngắt kết nối
- 19. Clojure (aleph) phát hiện khi máy chủ ngắt kết nối
- 20. Node.js: socket.io đóng kết nối máy khách
- 21. Làm cách nào để kết nối hai máy chủ node.js với ổ cắm web?
- 22. Kết nối với ổ cắm trên Tomcat?
- 23. Thực hiện dịch vụ phát trực tuyến WSGI: (cách phát hiện ngắt kết nối máy khách)
- 24. Quy tắc kết nối ổ cắm liên tục của Android
- 25. Ổ cắm PHP - Chấp nhận nhiều kết nối
- 26. Thực tiễn tốt nhất để phát hiện ngắt kết nối máy khách trong .NET?
- 27. Việc đóng luồng đầu vào của ổ cắm cũng có đóng kết nối ổ cắm không?
- 28. Ổ cắm máy khách không đồng bộ hướng dẫn sử dụngResetEvent đang thực hiện
- 29. không thể kết nối với ổ cắm bluetooth trên android
- 30. Ổ cắm ActionScript 3.0 không thể kết nối lại
tôi sẽ đề nghị có một người biết lắng nghe, hoặc một 'nhịp tim' để kiểm tra các khách hàng cho một phản hồi từ máy chủ. Đó là những gì tôi làm. –
Tôi đã làm điều này trong phiên bản trước của trang web của mình, mặc dù đã cung cấp đủ người dùng vào một thời điểm nhất định có vẻ như nó có thể là quá tải trên máy chủ, tùy theo số lượng yêu cầu, mặc dù nó có thể là tốt nhất, và chỉ có tùy chọn. –
socket.io sử dụng nhịp tim, vì vậy tôi chắc chắn điều này có thể thực hiện được – EhevuTov