socket.io查询参数不起作用
我有这个代码:
var ss = io('/secure', { query: 'token='+string });
它用于将查询parameter passing给以下代码作为socket.handshake.query访问的服务器:
io.of('/secure').use(function(socket, next){ // *** console.log( socket.handshake.query ); // validate token next(); });
但现在它不工作,并且console.log的输出不包括令牌属性:
{ EIO: '3', transport: 'polling', t: '1410465157747-0' }
我也尝试改变我的语法,我已经看到其他网上的语法…
var ss = io('/secure', { query: { 'token': string } });
这不会将查询属性添加到socket.handshake.query …
请帮忙!
顺便说一句我正在使用socket.io 1.1.0
我在socket.io最新版本(v 1.3.6),并发现相同的问题 – 对于第二个连接, query
不被发送。
我使用socket.io进行聊天和通知两个目的。 两者都在同一个端口上运行。 由于这是两个独立的服务,我在不同的端口上启动了两个独立的服务器 – 每个服务一个。 从那以后这个问题还没有看到。
试试这个:所以如果你有多个服务,尝试将它们分离到不同的端口。
var http_nfy = require('http').Server(app).listen(6001); var io_nfy = require('socket.io')(http_nfy); var http_cht = require('http').Server(app).listen(6002); var io_cht = require('socket.io')(http_cht);
然后,我用这两个不同的方式:
io_nfy.emit(channel + ':' + message.event, message.data); var chatNsp = io_cht.of('/chat');
我不确定这是一个错误还是有意的行为,因此没有提出任何问题。 如果有人可以确认这是一个错误,我会很乐意报告和跟踪这个错误。