В эмиттере на стороне сервера сокетов 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});
        }
});

0 ответов

Другие вопросы по тегам