Meteor服务器关闭套接字,并向客户端发送消息

Meteor服务器关闭套接字,并向客户端发送消息,meteor,Meteor,在没有太多细节的情况下,我正在构建一个用户加入聊天室的应用程序,我需要能够从聊天室引导他们,尽可能少地依赖客户端代码 最好的方法是什么 这意味着终止任意用户的订阅。我发现唯一可以停止服务器订阅的地方是publish()函数,每个订阅只调用一次。所以我在里面放了一个事件监听器,监听那个连接特有的发射。这意味着我对每个订阅都有一个事件侦听器 无论如何,事件正在发生,在那里,我尝试: this._session.socket.close(1, 'You have been kicked'); 这会关

在没有太多细节的情况下,我正在构建一个用户加入聊天室的应用程序,我需要能够从聊天室引导他们,尽可能少地依赖客户端代码

最好的方法是什么

这意味着终止任意用户的订阅。我发现唯一可以停止服务器订阅的地方是publish()函数,每个订阅只调用一次。所以我在里面放了一个事件监听器,监听那个连接特有的发射。这意味着我对每个订阅都有一个事件侦听器

无论如何,事件正在发生,在那里,我尝试:

this._session.socket.close(1, 'You have been kicked');
这会关闭套接字,但我找不到一种方法在客户端上侦听该事件以识别kick,而不侦听所有断开的连接

一定有一种方法可以做到这一点,我忽略了


谢谢。

我想你应该用数据库来做这个

Rooms.update(roomId, {$pull: {members: userId}});

然后,确保出版物仅发布用户是成员的房间,并确保向房间发送消息的方法检查用户是否也是成员。

您的问题过于抽象,无法这样回答。可能有很多方法可以做到这一点,但我认为没有人愿意坐下来为您编写代码。直接使用插座似乎不是一种很快就能做到的方法。如果你真的不想使用太多的客户端代码,那么meteor可能不是正确的选择。