node.js - 将 socketio 套接字 id 转换为套接字对象
问题描述
我有一个充满用户的对象:
{
user1: {
name: 'user',
id: 'hdqijhdwi' //socket id
} //etc
}
我想获取给定用户名和套接字 ID 的套接字对象。有没有办法在给定套接字 id 的情况下获取用户的套接字。
解决方案
由于 node.js 标记,我假设此代码是服务器端的。如果是这种情况,那么您可以使用socket.id
来做很多事情。
例如,如果连接在顶级命名空间中,那么您可以使用如下方式发送给给定用户socket.id
:
io.to(id).emit("someEvent", someData);
如果它在不同的命名空间中,您可以使用命名空间而不是io
.
请注意,io.to()
andnamespace.to()
被记录为发送到room
. 但是,这适用于 socket.id,因为每个套接字都唯一地进入一个具有其 id 名称的房间,因此这是一种通过 id 发送到套接字的聪明方法。
或者,如果您只想要该socket
对象,您可以从顶级命名空间套接字哈希对象中获取它,如下所示:
let socket = io.connected[id];
if (socket) {
socket.emit(someEvent, someData);
}
推荐阅读
- gatsby - 来自多个降价文件的单页模板
- python - 与多个 numpy 数组的矩阵乘法
- javascript - 我想使用 jquery 为每行中的不同分数分配等级
- swift - 不调用在协议扩展中添加的函数的重新实现
- java - Java Web Service 在本地机器上保持编码,在开发时转换
- spring-mvc - 如何在spring mvc ftl中使用right_pad评估嵌套表达式
- ruby-on-rails - 什么是使用动作邮件发送大量电子邮件的面向性能的方法?
- regex - 仅使用 Google 表单中的某些字词进行响应验证
- appium - 如何使用 Appium 在真实 iOS 设备上自动化我不拥有的 iOS 应用程序
- azure - 在 Azure Functions 2 中,+(加)号是否适用于路由