我正在尝试一个简单的聊天应用程序 here使用 socket.io 和 node.js。每次我重新启动 node.js 服务器时,socket.io 都会自动重新连接,并以某种方式再创建一个与服务器的连接,即客户端现在会收到两次相同的聊天消息。我该如何解决这个问题?
最佳答案
默认情况下,在断开连接时,socket.io 会重新连接丢失的连接,这会重新运行 connect
事件。因此,每次重新连接时,您都会再添加一个事件监听器来接收消息。因此,您会收到多条消息,等于服务器重新启动/连接丢失。
Incoming Chat:
Connected
dsdadsada
Disconnected //recieved by 1st listener
Connected //added 2nd listener
adasd
Disconnected //recieved by 1st listener
Disconnected //recieved by 2nd listener
Connected //added 3rd listener
您应该使用 once
而不是 on
来监听第一个连接,它只在第一次运行事件处理程序。试试
iosocket.once('connect', function () {
而不是
iosocket.on('connect', function () {
关于node.js - socket.io 重新连接后再创建一个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787996/