Я пытаюсь перестроить код socket.io от 0.9v до 1.x. Экспресс и socket.io являются последними версиями.TypeError: Не удается вызвать метод «get» undefined at socket.handshake
Итак, ошибка: Cannot call method 'get' of undefined
в
io.on('connection', function(socket) {
console.log(socket.handshake);
var username = socket.handshake.user.get('username'); //<----here
......
Это мой код:
module.exports = function(server) {
var io = require('socket.io')(server);
io.set('origins', 'localhost:*');
//I changed set to use, but it's doesn't matter i think
io.use(function(socket, next) {
var handshake = socket.request;
//io.set('authorization', function(handshake, callback) {
async.waterfall([
function(callback) {
handshake.cookies = cookie.parse(handshake.headers.cookie || '');
var sidCookie = handshake.cookies[config.get('session:key')];
var sid = connect.utils.parseSignedCookie(sidCookie, config.get('session:secret'));
//var sid = cookieParser.signedCookie(sidCookie, config.get('session:secret'));
loadSession(sid, callback);
}, ...continue...
продолжение:
function(session, callback) {
if (!session) {
callback(new HttpError(401, "No session"));
}
handshake.session = session;
loadUser(session, callback);
},
function(user, callback) {
if (!user) {
callback(new HttpError(403, "Anonymous session may not connect"));
}
handshake.user = user;
callback(null);
}
], function(err) {.....});
next();
});
io.on('connection', function(socket) { ... };
возврата ИО; };
Хорошо, помогите мне пожалуйста и спасибо!
ОК. Я проверил в консольном отладчике «socket.handshake» - он имеет некоторые данные, но socket.handshake.user ничего не имеет (нет ошибки, только новая строка). И socket.handshake.user.get - Невозможно прочитать свойство «get» неопределенного. –
Где код, который устанавливает это/раскрывает его? - в функции (пользователь, обратный вызов) {handshake.user = пользователь; обратный вызов (нуль); } ' –
Хорошо. В 'function (user, callback) {...}' после 'handshake.user = user' у нас есть' handshake.user.username = "correct username" '. И теперь мне нужно правильно установить 'var username' в' io.on ('connection', function (socket) {' Помогите мне! –