如何使用 socket.io 在所有套接字之间共享一个对象?

How to share an object across all sockets using socket.io?

我正在努力创建一个对象来存储房间中的客户数量。它看起来像这样:{ Room0: 1, Room1: 4, Room2: 3},每当发生套接字 connection/disconnection(加入或离开房间)时,该对象将被更新并且所有现有套接字都可以有随时访问它。

有没有简单的方法可以做到这一点?

您将在全局范围内设置一个变量(在 onMessage 或 onEvent 侦听器之外)。然后,在您的加入房间代码中,您将有一个部分可以添加到房间的数量中。这是一种粗略的方法。

var rooms = {lobby: 0, kitchen: 0}

在你的房间加入部分,假设他们加入了大厅,那么你会在那个街区内这样做:

rooms.lobby++

那么,任何想知道大厅人数的socket只需要调用:

rooms.lobby