Socket.io双向通信教程,广播broadcast相关方法
发布于 作者:苏南大叔 来源:程序如此灵动~

socket.io
除去协议切换那些事儿来说,单单这个发送消息的基本功能,都是很复杂繁琐的。本文说广播功能,可以理解为一对多发送消息,具体的函数操作细节上还是有很多不同的。特别是socket.io
增加了房间的概念后,这个事情就又更加复杂了。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,nodejs@20.18.0
,express@4.21.2
,socket.io@4.8.1
。本文主要讲述socket.io
消息广播的事情,本文中的广播所指范围较大,并不局限于代码中的.broadcast()
函数相关字样。
前文回顾
目前一共写了下面几篇socket.io
的文章了,链接如下:
- https://newsn.net/say/socket-io.html
- https://newsn.net/say/socket-io-path.html
- https://newsn.net/say/socket-io-transport.html
本文再次回归本源,聚焦于socket.io
的消息发送问题。本文的代码主要集中在服务端,客户端的代码占比较少。为了测试效果,需要有多个不同的用户访问。本地测试的话,可以利用多个不同的浏览器来进行模拟。
基础概念 room
在socket.io
里面,增加了room
的概念。那么,这里就存在着一个join
和leave
的问题。加入了一个房间后,实际面对的是接收这个房间专属的消息的问题。
服务端代码:
客户端代码:
代码框架
服务端代码测试框架:
下面的代码里面,发送者有两个。
io
,这个就像系统,无差别发送。socket
,这个就像玩家,仅仅是个特殊的个体。
io 发消息(服务端)
socket 发消息(服务端)
完整测试代码
服务端:
客户端public/test.html
,(多开以进行测试):

结语
苏南大叔写的socket.io
相关经验文章,请点击下面的链接:


