2014-10-04 3 views
0

Я пытаюсь добавить пользовательский атрибут к приветствию socket.io и передать его объекту сокета при каждом соединении.не может установить свойство на 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); 
}); 

выше должен дать доступ к свойству Foo на объект socket.handshake, однако, выполнив следующие действия:

io.sockets.on('connection', function (socket) { 
    console.log(socket.handshake.foo); //This should return bar 
}); 

Возвращает undefined.

+0

Я думаю, что объект, который вы определяете foo on, является копией вместо ссылки на фактический объект handsake. – smk1992

ответ

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, так что знание на этой странице очень полезно;)

Смежные вопросы