Node.js -Socket.io一遍又一遍地重复“io.on(”连接“)

xienkqul  于 2023-02-18  发布在  Node.js
关注(0)|答案(2)|浏览(361)

所以,我仍然处于www.example.com的实验阶段,但我不明白为什么我的代码会这样做。所以,我有下面的代码,当我用console.log记录代码时,即使只有一个连接,它也会重复连接。你知道解决办法吗?Socket.io, but I just can't figure out why my code is doing this. So, I have the code below and when I console.log the code, it repeats the the connection even when there is only one connection. Do you know a solution?

io.on('connnection', (socket) => {
    console.log("A new user is connected.")
})

客户端:

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io()
</script>

Node.js控制台:

A new user is connected.
A new user is connected.
A new user is connected.
A new user is connected.
A new user is connected.
A new user is connected.
A new user is connected.
...

(Note:只有一个连接,我已经清除了浏览器cashe)

eeq64g8w

eeq64g8w1#

以下是www.example.com反复连接的一些可能原因socket.io:
1.您的socket.io客户端和服务器版本不匹配,这将导致连接失败并立即重试。
1.您运行的基础设施(如代理或负载平衡器)配置不正确,无法实现持久的WebSocket连接。
1.您正在运行没有粘滞WebSocket连接的群集服务器。
1.您已经将服务器端io.on('connnection', ...)代码放入了其他某个函数中,该函数被多次调用,导致您为同一事件注册多个事件处理程序,因此您认为您将获得多个事件,但实际上您只是为事件的一次发生拥有多个侦听器。
1.您的客户端代码多次调用其var socket = io()
1.您的客户端页面正在重新加载(并因此在每次重新加载时重新启动连接),这可能是由于表单发布或其他原因。
仅供参考,有时您可以通过为客户端和服务器连接上所有可能的错误相关事件安装侦听器,然后记录发生的事件及其提供的任何参数来了解一些有用的信息。您可以在此处查看可以侦听和记录的所有客户端相关错误事件。

egdjgwm8

egdjgwm82#

要解决重复问题,请为socket编写类似的代码:

io.off("connnection").on('connnection', (socket) => {
    console.log("A new user is connected.")

})

相关问题