Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从socket.io中的事件获取套接字ID?_Javascript_Node.js_Socket.io_Socket.io 1.0 - Fatal编程技术网

Javascript 如何从socket.io中的事件获取套接字ID?

Javascript 如何从socket.io中的事件获取套接字ID?,javascript,node.js,socket.io,socket.io-1.0,Javascript,Node.js,Socket.io,Socket.io 1.0,我想知道哪个客户端在事件到达服务器时发送了事件。例如: var socket = require(socket.io')(port); socket.on("ask question", function(data){ var socketid = // ? //respond to sender socket.sockets.connected[socketid].emit("Here's the answer"); }); 如何获取事件发送者的套接字ID?您的服

我想知道哪个客户端在事件到达服务器时发送了事件。例如:

var socket = require(socket.io')(port);

socket.on("ask question", function(data){
    var socketid = // ?

    //respond to sender
    socket.sockets.connected[socketid].emit("Here's the answer");
});

如何获取事件发送者的套接字ID?

您的服务器端逻辑有点不正确。客户端连接,这是客户端套接字显示的地方,也是您侦听特定客户端事件的地方。通常,它看起来是这样的:

var io = require("socket.io")(port);

io.on('connection', function (socket) {
    socket.on('ask question', function (data) {
        // the client socket that sent this message is in the
        // socket variable here from the parent scope
        socket.emit("Here's the answer");
    });
});

socket.io文档中显示了这一点。

我的困惑在于我将io命名为“socket”,这使我认为该示例将其发送给所有人。