我正在尝试向socket.io握手添加自定义属性,并将其传递给每个连接的套接字对象。
在我正在做的事情的极少设置之下:
var app = express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
io.set('authorization', function(data, callback){
data.foo = 'bar';
callback(null, true);
});
上面应该可以访问socket.handshake对象上的foo属性,但是,执行以下操作:
io.sockets.on('connection', function (socket) {
console.log(socket.handshake.foo); //This should return bar
});
返回未定义的。
答案 0 :(得分:1)
在Socket.IO 1.0中,不再有handshake
个对象,它已被socket.request
取代。
这应该有效:
io.sockets.on('connection', function (socket) {
console.log(socket.request.foo);
});
Look here for more info on the differences between 0.9 and 1.0.
请记住,您在线查找的大多数资源/教程都将使用Socket.IO 0.9,因此本页面上的知识非常有用;)