В эмиттере на стороне сервера сокетов users[name].emit не является функцией
users[name].emit('private_msg', {msg : msg, user:socket.username});
TypeError: users [name].emit не является функцией
Я не могу решить эту ошибку, как я могу это исправить??
Я занимаюсь разработкой приложения для чата с использованием nodejs и socket.io, а здесь users{}; это объект, который содержит подключенных пользователей, и я хочу использовать их в качестве сокета, чтобы добавить функциональность личных сообщений.
полный код:-
//Send Message
socket.on('send message',function(data,callback){
var msg = data.trim();
if(msg.substr(0,3) === "/p ")
{
msg = msg.substr(3);
var ind = msg.indexOf(' ');
if(ind !== -1)
{
var name = msg.substring(0,ind);
var msg = msg.substring(ind + 1);
if(name in users)
{
console.log(users[name]);
users[name].emit('private_msg', {msg : msg, user:socket.username});
console.log('Prviate' + users[name]);
}
else
{
callback('Error!, user not found');
}
}
else
{
callback('plz enter msg');
}
}
else
{
io.sockets.emit('new message',{msg : msg,user:socket.username});
}
});