javascript - 如何从 Socket.io 中的事件获取套接字 ID?

标签 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 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 中.

关于javascript - 如何从 Socket.io 中的事件获取套接字 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26725488/

相关文章:

javascript - 如何在网格中随机播放图像

javascript - 在我更改 View 之前 JQGrid 寻呼机不显示

node.js - MongoDB 通知文档更新

javascript - Socket.io 路径在路径末尾添加斜杠

javascript - 发送大型数据集。最佳方法

javascript - 原型(prototype)化文件对象

javascript - 用于模拟按键的 Jquery 脚本按下不运行键盘快捷键

json - 无法通过声明的 mongoosejs 模式保存 JSON

javascript - 无法从nightmare.evaluate函数返回DOM元素数组

node.js - 如何为 Node js 项目创建 .pem 和 .cert 文件