使用Openfire Server的iOS XMPP Framework可以获得所有注册用户

 手机用户2502885835 发布于 2023-02-13 20:22

对于我的IOS聊天应用程序我正在使用Openfire Server,我正在检索特定的用户朋友列表,但现在我想从Openfire Server 检索所有注册用户.请帮助我,并提前感谢.

1 个回答
  • 嗨,大家终于通过使用用户名搜索用户找到了替代答案.

    1.对于每个联系人我都在这样添加emailid username @ domainname.
    2.在地方搜索字符串中,如果我们使用域名,那么我们将获得所有注册用户.

    //Request
    - (void)getDetailsofRegisteredUser {
    
        //To Search Peticular User either by using their name, email or username
        NSString *userBare1  = [[[[self appDelegate] xmppStream] myJID] bare];
        NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
        [query addAttributeWithName:@"xmlns" stringValue:@"jabber:iq:search"];
    
        NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"];
        [x addAttributeWithName:@"type" stringValue:@"submit"];
    
        NSXMLElement *formType = [NSXMLElement elementWithName:@"field"];
        [formType addAttributeWithName:@"type" stringValue:@"hidden"];
        [formType addAttributeWithName:@"var" stringValue:@"FORM_TYPE"];
        [formType addChild:[NSXMLElement elementWithName:@"value" stringValue:@"jabber:iq:search" ]];
    
        NSXMLElement *userName = [NSXMLElement elementWithName:@"field"];
        [userName addAttributeWithName:@"var" stringValue:@"Username"];
        [userName addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1" ]];
    
        NSXMLElement *name = [NSXMLElement elementWithName:@"field"];
        [name addAttributeWithName:@"var" stringValue:@"Name"];
        [name addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
    
        NSXMLElement *email = [NSXMLElement elementWithName:@"field"];
        [email addAttributeWithName:@"var" stringValue:@"Email"];
        [email addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
    
        //Here in the place of SearchString we have to provide registered user name or emailid or username(if it matches in Server it provide registered user details otherwise Server provides response as empty)
        NSXMLElement *search = [NSXMLElement elementWithName:@"field"];
        [search addAttributeWithName:@"var" stringValue:@"search"];
        [search addChild:[NSXMLElement elementWithName:@"value" stringValue:[NSString stringWithFormat:@"%@", SearchString]]];
    
        [x addChild:formType];
        [x addChild:userName];
        [x addChild:name];
        [x addChild:email];
        [x addChild:search];
        [query addChild:x];
    
        NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
        [iq addAttributeWithName:@"type" stringValue:@"set"];
        [iq addAttributeWithName:@"id" stringValue:@"searchByUserName"];
        [iq addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"search.%@",DOMAIN_NAME]];
        [iq addAttributeWithName:@"from" stringValue:userBare1];
        [iq addChild:query];
        [[[self appDelegate] xmppStream] sendElement:iq];
    
    }
    
    //We will get response here
    
    - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
    {
    
        DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
        NSLog(@"searched format %@", iq);
    
    }
    

    2023-02-13 20:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有