Socket.io双向通信教程,取得服务端地址中的参数
发布于 作者:苏南大叔 来源:程序如此灵动~

在socket.io
的客户端代码中,服务端的地址默认是可以不填写的。也可以填写一个namespace
,或者填一个ws(s)://
或者http(s)://
开头的(跨域)地址,或者“地址+命名空间”的组合。本文中,可以为这个地址,再添加一些参数信息。那么在服务端如何接收这些新增的参数么?

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境: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
- https://newsn.net/say/socket-io-namespace.html
本文的代码和最后一篇命名空间的文章,紧密相关。
测试代码
客户端:
服务端:
输出:

关键代码
关键代码如下:
传递的地址是:
拿到的地址是:
举一反三
举一反三一下,带参数的服务端的地址还可以这么写:
服务端接收的时候,就可以利用io.of()
来进行接收了。
多个socket.io初始化
客户端:
输出:

事情反转
但是,加上不带任何参数的io();
这个的时候,输出完全出乎意料了。客户端代码:
输出:
从输出结果上看,最后的两个请求出现了变数,author
参数丢失。

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


