为了在我的应用程序中实现聊天功能,我已将XMPP框架集成到其中。没有好友请求功能,因此用户可以在不发送好友请求的情况下向其他用户发送消息。由于此功能,我没有在应用程序中创建任何名单或隐私列表,并且已实施匿名聊天模式。
除阻止用户功能外,一切正常,因为这是匿名用户聊天,因此用户没有隐私列表,XMPP扩展XEP-016仅支持通过隐私列表进行阻止。
我也试图寻找替代方案,其中一个是实现XEP-0191,但遗憾的是Open Fire不支持此扩展。
所以技术人员请指导我解决这个问题。以下是我的问题。
我是否需要创建隐私列表/名单以在匿名用户聊天模式下阻止用户。此解决方案看起来不切实际,因为我的应用可能有数千名用户。
我应该将Jabber服务器从开放式火灾改为EJabber吗? Ejabber是否支持XEP-0191
除上述外,如果您了解在Jabber中以匿名用户聊天模式阻止/取消阻止用户的任何其他解决方法,请告知我们。
答案 0 :(得分:1)
我没有使用EJabber服务器的经验,但XEP 0191绝对是您需要的协议。
您可以在这里查看http://www.ejabberd.im/protocols,看看EJabber是否支持您的协议。
我的建议是更换服务器。
答案 1 :(得分:1)
无论如何,一块都没有意义。如果您阻止某人,他们可以创建一个新的匿名用户并再次与您联系。虽然这可能看起来很费劲,但很容易编写脚本来发送垃圾邮件。每隔30分钟,您就会创建一个新帐户并向所有人发送垃圾邮件,被踢,重复。
至少你将不得不实施XEP-0191(服务器端阻止列表)并找出如何处理匿名新帐户。
答案 2 :(得分:0)
不幸的是我必须坚持使用Open Fire服务器。为了解决块用户问题,我不得不查看XMPP的文档,最后在XEP-0016中找到了解决方案,这个扩展确实能够支持匿名用户阻塞。要实现此目的,必须使用- (void)setListWithName:(NSString *)privacyListName items:(NSArray *)items fromUser:(NSString *)user;
方法在服务器上创建隐私列表。完成后,通过调用方法- (void)setActiveListName:(NSString *)privacyListName;
将创建的列表标记为活动列表。
XEP-0016与Roster无关,它可以阻止匿名用户聊天。