0
我想我找到了一個錯誤。如果我把socket.join(/ 任何房間在這裏 /)裏面的connection.query函數,它不會簡單地加入那個房間。有趣的事實是,執行console.log作品:爲什麼socket.join在connection.query中不起作用?
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.io:socket接合室1個+ 101ms socket.io:socket接合1'室 和在這個房間裏套接字發送消息後發出事件「發送消息」,並調度,但客戶在第二種情況下不接收包「新消息」。 – filemono