从socket.on中获取变量

时间:2015-12-15 19:41:54

标签: javascript node.js socket.io

我现在尝试从socket.on();中获取一个变量,但是因为它说它是一个未定义的变量而无法解决它。

以下是不起作用的代码位:

 io.on('connection', function(socket){
    socket.join("0");
    socket.on("chatroom",function(chat){
        socket.join(chat);
        if(chat != "0"){
        console.log("A user joined chatroom: " + chat);
        }
        var chatroom = chat;
    });

}); 

var chatroom = chatroom;

如上所示,即使io.on功能中的值为2,得到的值也是未定义的。任何想法如何得出它?

请原谅我的noobish代码(node.js只有3天经验)

1 个答案:

答案 0 :(得分:0)

我认为外部chatroom变量被内部变量黯然失色。尝试:

var chatroom;
io.on('connection', function(socket) {
    socket.join("0");
    socket.on("chatroom", function(chat) {
        socket.join(chat);
        if(chat != "0") {
            console.log("A user joined chatroom: " + chat);
        }
        chatroom = chat;
    });    
}); 

此外,您必须了解,因为代码是异步的,所以代码的最后一行将在io.on('connection', ...)

内部的代码之前执行