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

accessing other socket inside the socket.on('connection') in 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)
    });

};

感谢您的帮助..

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

有无数种方法来构造它,从将其保存到套接字上的 属性,到将其保存为用户名 --> 用户数据的映射,再到将其保存在数据库中。一般的想法是当你收到它时将它保存在某个地方,这样无论你想在将来检索数据以用于将来的某些事件,你都可以在该数据结构或数据库中找到它。

来自您的代码示例:

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.
    });

});