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