2017-03-13 11 views
0

私はバグを見つけたと思います。私がsocket.join(/ ここに任意の部屋 /)をconnection.queryの中に入れると、単にその部屋に参加するだけではありません。私は私の思考プロセスに間違っ何をしています...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 

とコードを働いている:興味深い事実ははconsole.log作品があることでしょうか?ソケットは、必ずしもローカル内に存在しないとして、私はあなたがレキシカルスコープの問題を持っていると信じてい

socket.id = result.insertId; 
+0

: –

+0

ノードデバッガの場合: 'socket.io:socket join room 1 + 101ms socket.io:socket joined room 1' この会議室でメッセージを送信した後、イベントを送信してメッセージを送信し、クライアント2番目のケースではパケット "新しいメッセージ"を受信しません。 – filemono

答えて

0

は私の問題は、元今まで行われるべきではありません何socket.idを上書きすることによって引き起こされたが判明しますそのクエリにアクセスすることができないため、未定義のままなので何もしません。
関連する問題