如何在XMPP中阻止匿名用户

时间:2013-05-05 08:13:21

标签: ios xmpp chat openfire ejabberd

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

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

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

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

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

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

  3. 除上述外,如果您了解在Jabber中以匿名用户聊天模式阻止/取消阻止用户的任何其他解决方法,请告知我们。

3 个答案:

答案 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无关,它可以阻止匿名用户聊天。