Socket.io双向通信教程,如何理解使用命名空间?
发布于 作者:苏南大叔 来源:程序如此灵动~

默认情况下,socket.io
的代码中,是不体现命名空间的,或者说命名空间就是/
。如果代码日益复杂,增加命名空间就有必要性了。命名空间的作用,就类似苏南大叔的博客文章链接一样,使用路径目录来作为文章链接的命名空间。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,nodejs@20.18.0
,express@4.21.2
,socket.io@4.8.1
。
前文回顾
在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
- https://newsn.net/say/socket-io-broadcast.html
- https://newsn.net/say/socket-io-cors.html
客户端代码
基本版,不带命名空间:
带命名空间:
服务端代码
就是在原来的io
后面加个.of()
就是命名空间了。
测试代码
这个例子里面,一共两个命名空间,
- 分别是
/milk
和/beer
,对应两个产品线。 - 房间并不是单独的存在,它隶属于某个命名空间。
io.of().to()
,只能向它名下的房间发消息。
客户端:

服务端:

结语
更多苏南大叔的socket
经验文章,请参考:


