javascript - 为什么socket.join在connection.query中不起作用?

标签 javascript mysql node.js socket.io

我想我发现了一个错误。如果我将 socket.join(/此处任何房间/) 放入 connection.query 函数中,它不会简单地加入该房间。有趣的事实是 console.log 可以工作:

function registerInRoom (user, room) {
    var post_room = {Users_user_id: user, Rooms_room_id: room, ur_id: undefined};
    connection.query('INSERT INTO mydb.users_has_rooms SET ?', post_room, function(err) {
        if (err) throw err;
        socket.room = room;
        console.log("joined room");
        socket.join("Room 1");
    });

};//registerInRoom

这是工作代码:

function registerInRoom (user, room) {
    var post_room = {Users_user_id: user, Rooms_room_id: room, ur_id: undefined};
    connection.query('INSERT INTO mydb.users_has_rooms SET ?', post_room, function(err) {
        if (err) throw err;
        socket.room = room;
        console.log("joined room");
    });
    socket.join("Room 1");
};//registerInRoom

我的问题是......我在思考过程中做错了什么?

最佳答案

事实证明我的问题是由于覆盖原始的 socket.id 引起的,这是不应该做的:

socket.id = result.insertId;

关于javascript - 为什么socket.join在connection.query中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773773/

相关文章:

javascript - ESLint 和 Vue - 如何禁止使用 `$log`?

javascript - 在javascript类中创建方法事件

php - PHP 和 MySQL 中使用下拉列表的多个搜索值

php - 如何从数据库中获取数据并在php页面上回显?

javascript - 使用 npm 在 html 中导入 javascript

javascript - jQuery - 更改具有相同类名的特定文本的字体粗细

javascript - d3 : Data Distribution to Elements Based on Specific Field

python - 具有复合键的 Flask-SQLAlchemy 多对多

javascript - 带有相关种子数据的 KnexJS 迁移

node.js - Angular2 和 Spring Boot。如何服务前端?