没有太多细节,我正在构建一个用户加入房间的应用程序,我需要能够从房间启动它们,尽可能少地依赖客户端代码。
最好的方法是什么?
这意味着结束任意用户的订阅。我发现停止从服务器订阅的唯一地方是publish()函数,每个订阅只调用一次。所以我在那里放了一个事件监听器来监听该连接唯一的发射。这意味着我有一个每个订阅的事件监听器......
无论如何,事件正在解雇,而在那里,我试过了:
this._session.socket.close(1, 'You have been kicked');
这会关闭套接字,但我找不到在客户端上侦听该事件以识别踢的方法,而不会监听所有断开连接。
必须有一种方法可以做到这一点,我忽视了。
感谢。
答案 0 :(得分:1)
我认为你应该使用数据库。
Rooms.update(roomId, {$pull: {members: userId}});
然后,确保发布仅发布用户所属的会议室,并确保向会议室发送消息的方法也检查用户是否也是会员。