【问题标题】:How to access all users using Rosters in XMPP ejabberd server如何在 XMPP ejabberd 服务器中使用名册访问所有用户
【发布时间】:2014-11-16 01:44:29
【问题描述】:

我正在使用 XMPP 进行聊天。我已经注册并登录到 ejabberd 服务器。

我可以在网页界面看到有 10 个注册用户和 4 个在线用户。但是名册代表没有得到任何联系。

我已经尝试过这个解决方案。我没有得到任何结果。

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
NSXMLElement *queryElement = [iq elementForName: @"query" xmlns: @"jabber:iq:roster"];

if (queryElement) {
NSArray *itemElements = [queryElement elementsForName: @"item"];
[ArrayUsers removeAllObjects];
for (int i=0; i<[itemElements count]; i++) {

    NSString *jid=[[[itemElements objectAtIndex:i] attributeForName:@"jid"] stringValue];
    [ArrayUsers addObject:jid];
}
}
return NO;
}

可能是什么问题?我是否必须为此配置服务器设置才能获取联系人。默认情况下所有人都可以访问它吗? 或者,我是否必须进行查询以获取用户详细信息并自动同步到 CoreData 存储。

任何帮助将不胜感激。

【问题讨论】:

    标签: xmpp ejabberd xmppframework


    【解决方案1】:

    问题是在 ejabberd 配置文件中未启用共享名册模块。您可以在您的 ejabberd 配置模块部分启用mod_shared_roster (知道怎么做的人会明白。我个人不知道!所以寻求公司其他人的帮助)。 然后,共享名册选项将在 ejabberd 服务器管理端的 Web 界面中可用。

    现在使用以下链接配置服务器以查看每个主体的所有用户: ejabbered configuration

    现在,如果您已登录并设置了名册的自动同步(RobbieHanson Eg 的 XMMP 框架),您将获得列表中的所有用户。

    【讨论】:

      【解决方案2】:

      创建一个共享名册并从该名册中获取所有用户。检查this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-06
        • 2014-09-17
        • 2016-12-07
        • 2023-03-28
        • 1970-01-01
        • 2016-03-03
        • 2015-11-22
        相关资源
        最近更新 更多