【问题标题】:Socket.IO Real time ChatSocket.IO 实时聊天
【发布时间】:2020-10-02 19:34:48
【问题描述】:

我正在尝试使用 socket.io 获取指定的房间,但它给出了错误“房间未定义”。下面是我的代码。有人可以帮忙吗?或者解释一下是什么问题

io.on('connection', (socket) => {

socket.on('join', ({name, room}, callback ) => {
    console.log(name, room);
    const {error, user} = addUser({id: socket.id, name, room});
    if(error) return callback(error);

    //greeting message for user when joins room
    socket.emit('message', {user: 'admin', text: `${user.name}, welcome to the room ${user.room}`});
    //greet message to everyone in room that user has joined
    socket.broadcast.to(user.room).emit('message', {user: 'admin', text : `${user.name} has joined.`});

    socket.join(user.room);//puts user in room
    callback();

});
socket.on('sendMessage', (message, callback) => {

    const user = getUser(socket.id);// get user by id 

    io.to(user.room).emit('message', {user: user.name, text: message});
    callback();
});


socket.on('disconnect', () => {
    console.log('User have left!!');
})

});

【问题讨论】:

  • 嗨,这可能是您发出“加入”事件的地方,您不会发送像{ name: 'name', room: 'room' } 这样的对象。所以它不会破坏房间。 console.log(name, room) 的输出是什么; ?

标签: socket.io


【解决方案1】:

您的问题来自客户端。服务器没问题。前端未发送用户输入的房间。看看吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-20
    • 2018-01-03
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    相关资源
    最近更新 更多