gpt4 book ai didi

javascript - io.on ('connection' , function(socket){}) 中的 io.sockets.emit 和 socket.emit 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 02:54:07 25 4
gpt4 key购买 nike

我注意到如果我想发出类似的消息

io.on('connection', function(socket){
socket.emit('signal')
})

不知何故,我必须刷新 HTML 页面才能使 ejs 文件在信号上工作。但如果我直接发出它:

io.sockets.emit('signal')

然后我不必刷新 html 即可使操作生效。

怎么会这样?

最佳答案

让我用简单的英语翻译一下代码。

第一种情况

io.on('connection', function(socket){
socket.emit('signal')
})

翻译:当 io 连接时,指示触发 connection 事件的已连接套接字发出“信号”。

在本例中,io 附加了一个事件监听器,该事件监听器监听“连接”事件,每当 socket 连接到 io 时都会触发该事件。因此,每当 socket 连接到 io 时,io 都会指示 socket 发出“signal”事件.

为什么我需要刷新才能触发?

因为当您刷新时,您的计算机将充当套接字并连接到io onload。因此,会触发“connection”事件,并且仅当 socket 连接到 io 时才会触发。

注意:实际上,您不需要需要刷新来触发它。您只需断开互联网连接,然后重新连接即可。

第二种情况

io.sockets.emit('signal')

翻译:当前连接到 io 的所有套接字,立即发出“signal”事件!

在这种情况下,您将指示所有当前连接的套接字发出“signal”事件。您的计算机是连接到 iosocket,因此它会发出该事件。

注意:如果您有另一个设备连接到同一 Node 服务器,并且您使用该命令,您将看到发出两个“信号”事件。

关于javascript - io.on ('connection' , function(socket){}) 中的 io.sockets.emit 和 socket.emit 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47711202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com