我希望能够根据某些条件对每个连接的客户端进行不同的处理,但我似乎无法弄清楚如何针对单个客户端。每个客户端我都需要某种唯一的引用,但是作为发布/订阅交互或其他方式的一部分,我无法在客户端本身或服务器上找到它。
我注意到您可以获得一个 userId,但这取决于实际创建帐户并登录的用户,否则它仍然设置为 null。
例如,我将如何仅在要连接的最新客户端上显示消息,或设置排队系统以使连接的客户端访问有限资源?
谢谢!
我希望能够根据某些条件对每个连接的客户端进行不同的处理,但我似乎无法弄清楚如何针对单个客户端。每个客户端我都需要某种唯一的引用,但是作为发布/订阅交互或其他方式的一部分,我无法在客户端本身或服务器上找到它。
我注意到您可以获得一个 userId,但这取决于实际创建帐户并登录的用户,否则它仍然设置为 null。
例如,我将如何仅在要连接的最新客户端上显示消息,或设置排队系统以使连接的客户端访问有限资源?
谢谢!
您可以为每个客户端分配一个唯一标识符,并让他们每隔几秒钟使用新的时间戳更新文档。要查找要连接的最新客户端,请按时间戳对文档进行排序并获取第一个。如果客户端停止更新文档,它将断开连接,因此您可以从您的 connectedClients 方法中过滤它或将其从文档中删除。
我认为this.setUserId()
可以做你想做的事:
调用此函数以更改调用此方法的连接上的当前登录用户。这只是为将来在此连接上收到的方法调用设置 userId 的值。传递 null 以注销连接。
您可以检查 id 是否为空,如果是,只需将其设置为某个唯一标识符。将它放在您的客户将调用的第一个方法或发布函数中。
功能信息和报价来自http://docs.meteor.com。