访问socket.io中socket.on('connection')内的其他套接字

时间:2015-02-15 08:23:17

标签: javascript node.js socket.io

我是node.js和socket.io的新手。

如何访问socket.on('connection')中的其他套接字? 这是我的服务器端代码:

服务器端 index.js

io.sockets.on("connection", function (socket) {

    socket.on("tree", function(fruit){
        var fruit = "strawberry";
        console.log(fruit); // result: strawberry
    });

    socket.on("drink", function(juice){
        //How to access var fruit here? (strawberry)
    });

};

感谢您的帮助..

1 个答案:

答案 0 :(得分:0)

如果您希望某些数据(例如头像)在收到后可用于将来的事件,那么您必须将该数据保存在服务器中的某个位置,并以您知道哪个数据去的方式保存与哪个连接。

有很多种方法可以将它从保存到套接字上的属性,到保存用户名的地图 - > userdata将其保存在数据库中。一般的想法是,当你收到它时将它保存在某个地方,这样你想要在将来检索数据以便在将来的某些事件中使用,你可以在那个数据结构或数据库中找到它。

从您的代码示例:

io.sockets.on("connection", function (socket) {

    var savedFruit;
    socket.on("tree", function(fruit){
        savedFruit = fruit;
        console.log(fruit); // result: strawberry
    });

    socket.on("drink", function(juice){
        // You can access the savedFruit variable here which will only have a
        // value if the "tree" message has already been received.
    });

});