Tôi đã xây dựng một ứng dụng web đơn giản thực hiện một số giao tiếp thông qua một máy chủ node.js bằng cách sử dụng socket.io.Liệu socket.io có kết nối lại kết nối lại không?
Khi người dùng kết nối, nút giao tiếp lại thông tin cho khách hàng đăng ký các sự kiện nhất định. Điều đó hoạt động tốt.
Nhưng nếu bạn để trình duyệt không hoạt động, khách hàng sẽ đăng ký các sự kiện hai lần. Quá trình đăng ký các công trình như thế này:
Khi người dùng kết nối Node.js được một 'adduser' nhắn
Hai điều quan trọng mà hapen chức năng có này:
socket.on('adduser', function(data)
<snip>
socket.emit('nodeinfo', {node_id: NODE_ID});
socket.emit('update', {msg: 'you are connected'});
các socket. phát ra ('nodeinfo') báo hiệu máy khách đăng ký các sự kiện.
Vì vậy, các khách hàng có
socket.on('nodeinfo', function(data) { ... }
Vấn đề là nó không bao giờ nói 'bạn đang kết nối' hai lần, không ai trong số các console.log() chức năng trong 'adduser' được gọi một lần nữa về phía nút. Điều duy nhất dường như xảy ra là node.js phát ra nodeinfo một lần nữa (hoặc vì vậy client nghĩ) khiến client phải đăng ký lại.
Bất cứ ai có thể giải thích cho tôi cách kết nối lại trong công việc socket.io và điều này có thể xảy ra như thế nào?
Có. Giống hệt với kết quả tôi chỉ nhận thấy điều gì xảy ra với ứng dụng của chúng tôi. cảm ơn – Xin