【问题标题】:How can I get the socket ID from an event in Socket.io?如何从 Socket.io 中的事件中获取套接字 ID?
【发布时间】:2014-12-30 18:33:17
【问题描述】:

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

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?

【问题讨论】:

    标签: javascript node.js socket.io socket.io-1.0


    【解决方案1】:

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

    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 文档here

    【讨论】:

    • 我的困惑在于我将 io 命名为“socket”,这让我认为这个例子是发送给每个人的。
    猜你喜欢
    • 2014-10-01
    • 2019-08-04
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2016-07-24
    • 2016-12-13
    相关资源
    最近更新 更多