2011-08-25 25 views
5

Tôi có một khách hàng socket.io kết nối với một máy chủ node.js. Nếu tôi giết node.js tại dòng lệnh, máy khách sẽ đóng băng ngay lập tức (tức là, dừng truyền thông), nhưng có sự chậm trễ ~ 20 giây trước khi sự kiện "ngắt kết nối" được kích hoạt. Hành vi này có được thiết kế không? Có tùy chọn cấu hình để giảm độ trễ khi kích hoạt sự kiện ngắt kết nối không?Socket.io trì hoãn việc kích hoạt sự kiện "ngắt kết nối"?

Dường như hành vi này đã thay đổi trong bản cập nhật tương đối gần đây (sau 6 tháng) của socket.io. Trước khi chức năng kết nối lại được xây dựng vào chính socket.io, tôi đã triển khai logic kết nối lại của riêng tôi bằng cách sử dụng trình xử lý sự kiện "ngắt kết nối" và tại thời điểm đó sự kiện "ngắt kết nối" được kích hoạt gần như ngay lập tức khi truyền thông máy chủ dừng lại.

Trả lời

6
+1

đây không phải là câu trả lời cho câu hỏi, bạn có thể chấp nhận câu hỏi như thế nào? Hoặc vì sợ rằng hãy giải thích thời gian chờ gần như khắc phục vấn đề này như thế nào! – Iamisti

2

Tôi nghĩ đây có thể là mẫu thiết kế. Các khách hàng có thể được coi là máy chủ là 'tạm thời' không thể truy cập (mạng vv) và về cơ bản sẽ tiếp tục cố gắng để đạt được nó ... cho đến khi thời gian chờ của khách hàng đá.

Tôi gửi một ngắt kết nối (socket.disconnect()) đến máy chủ trực tiếp từ máy khách và tôi không gặp phải vấn đề này.

Các vấn đề liên quan