socket.io 中 io.on 和 socket.on 的区别

Posted

技术标签:

【中文标题】socket.io 中 io.on 和 socket.on 的区别【英文标题】:Difference in io.on and socket.on in socket.io 【发布时间】:2021-09-26 12:55:06 【问题描述】:

此图是否正确表示节点 js 服务器中的 io 和套接字? 我想说的是...... 首先我们写- const io=require("socket.io")(8080);

然后我们写-io.on('connection',(socket)=>//some logic...) 这是在端口 8080 的节点 js 服务器内建立某种 socket.io 服务器吗? 在 io.on 之后,我们编写 socket.on(event,action); 这 socket.on 是否像在用户连接的套接字服务器中打开一样??? 如果图表是错误的请纠正我.. 谢谢 ... Diagram Here

【问题讨论】:

【参考方案1】:

io.on 侦听所有事件,您可以这样做:

const io = require('socket.io')(8080);

let users = 0;
io.on('connection',(socket)=>
  users++;
  console.log(users);
);
io.on('disconnect',(socket)=>
  console.log('A user disconnected!');
);

另一方面,socket.on 只监听它自己的服务器上的数据,所以它会忽略其他服务器的数据。

【讨论】:

以上是关于socket.io 中 io.on 和 socket.on 的区别的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 和 Socket.IO - Socket.On 不工作

socket.io |我应该将路由处理程序包装在 io.on('connection') 中吗?

Socket io 'on' 回调运行多次

socket.io - socket.on 等待承诺

是否可以将多个处理程序添加到同一个 socket.io.on 事件?

使用socket.io连接mongodb