0
Я пытаюсь отправить сообщение конкретному пользователю на nodejs, а затем сохранить socket.id
и nickname
как имя пользователя в массив, а затем получить это, чтобы отправить сообщение, но я получаю эту ошибку:Nodejs Не удается прочитать свойство «emit» неопределенной ошибки
Cannot read property 'emit' of undefined
Это мой код:
var socket = require('socket.io'),
express = require('express'),
app = express(),
server = require('http').createServer(app),
io = socket.listen(server);
io.sockets.on('connection', function (socket) {
socket.on('login', function (data) {
login(data.username, data.password, function (success, value) {
if (success) {
usernames[data.username] = socket.id;
socket.emit('login', {result: true, id: value});
} else {
socket.emit('login', {result: false});
}
});
});
socket.on('requestMoney', function (username) {
log.info('username: ' + username);
usernames[username].emit('message', {username: 'Hey !!'});
});
});
http://stackoverflow.com/questions/32659864/socket-io-typeerror-cannot-read-property-emit-of-undefined –
'usernames [имя пользователя]' явно не то, что вы есть, и вместо этого возвращает 'undefined', вероятно, потому, что полученный ключ в аргументе обратных вызовов неверен. – adeneo
Имя пользователя не пусто –