7

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

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

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

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

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

  2. 我应该将 Jabber 服务器从 open fire 更改为 EJabber 吗?Ejabber 是否支持 XEP-0191

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

4

3 回答 3

1

我没有使用 EJabber 服务器的经验,但 XEP 0191 绝对是您需要的协议。

您可以在这里查看http://www.ejabberd.im/protocols并查看 EJabber 支持您的协议。

我的建议是更换服务器。

于 2013-05-15T14:53:20.087 回答
1

无论如何,一个块是没有意义的。如果您阻止某人,他们可以创建一个新的匿名用户并再次开始与您联系。虽然这看起来需要付出很多努力,但可以很容易地编写脚本来发送垃圾邮件。每 30 分钟您创建一个新帐户并向每个人发送垃圾邮件,被踢并重复。

至少您将不得不实施 XEP-0191(服务器端阻止列表)并弄清楚如何处理匿名新帐户。

于 2013-05-16T10:24:35.460 回答
0

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

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

于 2013-05-21T16:58:45.753 回答