如何在XMPP中阻止匿名用户

san*_*ndy 7 chat xmpp openfire ejabberd ios

为了在我的应用程序中实现聊天功能,我已将XMPP框架集成到其中.没有好友请求功能,因此用户可以在不发送好友请求的情况下向其他用户发送消息.由于此功能,我没有在应用程序中创建任何名单或隐私列表,并且已实施匿名聊天模式.

一切正常,除了阻止用户功能,因为这是匿名用户聊天,因此没有用户的隐私列表,XMPP扩展XEP-016仅支持通过隐私列表阻止.

我也试图寻找替代方案,其中一个是实现XEP-0191,但遗憾的是Open Fire不支持此扩展.

所以技术人员请指导我解决这个问题.以下是我的问题.

  1. 我是否需要创建隐私列表/名单以在匿名用户聊天模式下阻止用户.此解决方案看起来不切实际,因为我的应用可能有数千名用户.

  2. 我应该将Jabber服务器从开放式火灾改为EJabber吗?Ejabber是否支持XEP-0191

除了以上之外,请告诉我们您是否知道在Jabber中以匿名用户聊天模式阻止/取消阻止用户的任何其他解决方法.

san*_*ndy 0

不幸的是我必须坚持使用 Open fire 服务器。为了解决阻止用户的问题,我不得不查阅XMPP的文档,最终在XEP-0016中找到了解决方案,这个扩展确实具有支持匿名用户阻止的能力。要实现这一目标,必须使用- (void)setListWithName:(NSString *)privacyListName items:(NSArray *)items fromUser:(NSString *)user;方法在服务器上创建隐私列表。完成后,通过调用 方法将创建的列表标记为活动列表- (void)setActiveListName:(NSString *)privacyListName;。

XEP-0016 与 Roster 无关,它可以阻止匿名用户聊天。