node.js socket.io room 用户总数

2023-12-10

我正在尝试计算特定房间中的用户总数并将其广播给该房间中的所有人。

这是我所拥有的,但出现错误:

var clients = io.sockets.clients(cc.lowerCase(data.roomname)).length;
         io.sockets.in(cc.lowerCase(data.roomname)).emit('updatetotal', { total: clients });

ERROR:

TypeError: Object #<Namespace> has no method 'clients'

Thanks.


自 socket.io 1.0 以来,其 API 发生了显着变化,因此旧代码可能无法工作。

要获取房间中的客户端数量,您可以使用此函数:

var getUsersInRoomNumber = function(roomName, namespace) {
    if (!namespace) namespace = '/';
    var room = io.nsps[namespace].adapter.rooms[roomName];
    if (!room) return null;
    var num = 0;
    for (var i in room) num++;
    return num;
}

或者更简洁地说:

var getUsersInRoomNumber = function(roomName, namespace) {
    if (!namespace) namespace = '/';
    var room = io.nsps[namespace].adapter.rooms[roomName];
    if (!room) return null;
    return Object.keys(room).length;
}

该函数有两个参数:

  • roomName
  • namespace(可选)默认='/'

要向该房间的用户发送消息,只能使用.to method:

io.to(yourRoomName).emit('updatetotal', { total: getUsersInRoomNumber(yourRoomName) });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node.js socket.io room 用户总数 的相关文章

随机推荐

  • 通过javascript获取网页文本[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 是否有 JavaScript 语句可以从网页中检索内容 文本 你可以这样做Ranges
  • 可以在 SharedPreferences 中保存 JSON 数组吗?

    我有一个需要保存的 JSON 数组 我正在考虑序列化它 但是将它保存为 SharedPreferences 中的字符串 然后在我需要读入它时重建它会更好吗 Java 中的 JSON 对象并未实现开箱即用的可序列化 我见过其他人扩展了该类以允
  • 为什么边框会导致 div 溢出容器?

    我有一个部分设置为固定宽度 其内部有一个 100 宽度的 div 边框为 5 像素 看起来不错 但您可以看出包含的 div 有点偏离中心 而且它不会没有边框 我需要将其与客户端组件相匹配 代码相当简单 info max width 980p
  • 我可以在Xcode模拟器中测试加速度计效果吗?

    我正在开发一个管理图像视图的 alpha 属性的应用程序 当用户移动手机时 Alpha 属性可以增加 减少 我在这里看到了一些关于使用 UIAccelerometer 子类的内容 谁能帮我做到这一点 以便我可以在模拟器上测试它 谢谢 您不能
  • 将视图添加到操作表中

    我可以将自定义 UIViewController 添加到 ActionSheet 中吗 thanks 终于我找到了它 我在 UIActionSheet 中添加了一个 UIViewController 子类的视图 我在单独的文件中创建了一个视
  • 如何解决“以下软件包具有未满足的依赖关系”

    我正在使用这个脚本来安装基本软件 但由于网速缓慢而不得不中断 现在当我击中 sudo apt get install npm 我收到以下错误 yask123 yaskslaptop sudo apt get installed npm E
  • GCC,比较使用 -O2 和使用它打开的所有优化标志的效果

    From gcc5 4文档 它说 O2 打开 O 指定的所有优化标志 它还打开以下优化标志 f线程跳转 falign 函数 falign 跳跃 falign 循环 falign 标签 fcaller 保存 f越野跳跃 fcse follow
  • Linq to sql,在 datagridview 中过滤结果

    我有一个非常简单的数据库 我正在使用 linq to sql 我有一个 datagridview 来显示表的内容 我希望用户能够过滤出现在 datagridview 中的行 如果可能的话 无需对数据库进行另一个查询 我的资源确实很少 因此解
  • UICollectionViewCell 内带有 UITableView 的自定义单元格

    我有一个用于 UICollectionView 的自定义 UICollectionViewCell 我已将此自定义类标记为 UITableViewDataSource 和 UITableViewDelegate 以便将 UITableVie
  • 需要用 C 语言构建简单的 DNS 解析器 [重复]

    这个问题在这里已经有答案了 可能的重复 如何用 C C 构建自定义简单 DNS 服务器 正如标题所说 我需要用 C 语言构建一个简单的 dns 解析器 不是 C 我在互联网上查找了一些教程来帮助我入门 但大多数都找到了 C 想知道是否有人知
  • EventSource .net 4.0 生成清单

    我一直在尝试在 net 4 0 中使用 ETW 我已经开始使用 Microsoft EventSource Library 1 0 4 beta https www nuget org packages Microsoft Diagnost
  • 尝试了解输入验证循环

    在此输入验证 while 循环中 在调用我的控制台输出后显示 cerr 它显示为 输入费率 无效费率 例如 Enter rate 750 Enter rate Invalid Rate 它与 do while 循环的作用相同 有什么建议或帮
  • Angular 2 ngIf 和 CSS 过渡/动画

    我想要一个 div 使用 css 从角度 2 右侧滑入 div class note p Notes p div
  • Javascript 函数打印 .innerHTML 但 HTML 只出现一会儿就消失了

    我有一个调用名为 submit 的 javascript 函数的按钮 在该函数中 我只需编写 document getElementById try innerHTML it Work 测试我的按钮是否正在将数据传递给函数 问题是 它有效
  • 如何在phonegap中同时选择多个文件

    我在这里用谷歌搜索并搜索 我没有找到任何与phonegap中的多个文件选择器或选择器相关的选择解决方案 目前我可以在phonegap 适用于Android 中一次选择单个文件 无需任何插件用它来获取文件 如何在 PhoneGap 中一次选取
  • 如何将通过C++中的另一个类添加的数据显示到ListView、QML?

    我需要呈现 QLinkedList 容器中的所有数据 这是由任务给出的 我创建了两个类 DataObject 用于 ListView 中的委托 Glav 用于包含 DataObject 对象的容器 我有一个按钮 可以通过它向容器添加数据 G
  • 在 Visual Studio 2019 中禁用工具提示

    将鼠标悬停在 C 文件中的每一段文本上都会弹出一个 提示 有谁知道如何删除这些提示 如果您能告诉我如何从 Visual Studio 2019 中的每个窗口中全局删除所有工具提示 那就加分了 Visual Studio 没有关闭工具提示的设
  • C++11 中的隐式构造函数参数转换

    让我们考虑以下代码 class A public A int x class B public B A a int main B b 5 return 0 在编译时 编译器抱怨 home test main cpp 80 candidate
  • 使用 PHP 连接到 EPP 服务器,使用 SSL

    我即将连接到安全 EPP 服务器并发送 XML 请求 然后再次接收 XML 格式的响应 我需要在 PHP 中执行此操作 因此 我需要使用 SSL 证书通过 TCP 连接到特定端口上的 EPP 服务器 因为这是我到目前为止所掌握的信息 仍在等
  • node.js socket.io room 用户总数

    我正在尝试计算特定房间中的用户总数并将其广播给该房间中的所有人 这是我所拥有的 但出现错误 var clients io sockets clients cc lowerCase data roomname length io socket