在很多应用场景中,客户端发起连接请求时都需要传递参数,这些参数可能是身份验证、初始化设置等等,那么socket.io发起连接时如何传递参数呢?
var socket = io.connect('https://www.jb51.net/');
由于connect函数发起连接的参数是一个url,你可能会想到把参数拼接到url上,如?xx=xxxx,但是很遗憾这样是行不通的,我们可以通过这样的方式来传递参数:
var socket = io.connect('https://www.jb51.net/',{ _query:'sid=123456' });
在服务端可以这样获取到传递的参数:
io.use(function(socket){ var query = socket.request._query; var sid = query.sid; });
客户端传递的参数已经被解析成了一个json对象,这个对象就是_query。
您可能感兴趣的文章: