【问题标题】:How to retrieve chat history from open fire in android如何在android中从开火中检索聊天记录
【发布时间】:2014-03-06 14:56:51
【问题描述】:

我有一个聊天应用程序,我想在其中检索两个用户之间的聊天历史记录,我有一个用于检索聊天消息的节,那就是...

    <iq type='get' id='pk1'>
<list xmlns='urn:xmpp:archive'
with='shrey27@sys1-pc'>
<set xmlns='http://jabber.org/protocol/rsm'>
<max>30</max>
</set>
</list>
</iq>

现在,我的问题是如何将这节发送到服务器,以便获得响应。我已经安装了消息归档插件,并且消息正在完美地存储。任何建议都会是有益的...... 提前致谢!!!

【问题讨论】:

    标签: android xmpp chat openfire


    【解决方案1】:
    NSXMLElement *iQ = [NSXMLElement elementWithName:@"iq"];
    [iQ addAttributeWithName:@"type" stringValue:@"get"];
    [iQ addAttributeWithName:@"id" stringValue:@"987654321"];
    
    NSXMLElement *list = [NSXMLElement elementWithName:@"list"];
    [list addAttributeWithName:@"xmlns" stringValue:@"urn:xmpp:archive"];
    [list addAttributeWithName:@"with" stringValue:@"bhushan@mydomain.com"];
    
    
    
    NSXMLElement *set = [NSXMLElement elementWithName:@"set"];
    [set addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/rsm"];
    
    NSXMLElement *max = [NSXMLElement elementWithName:@"max"];
    [max addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/rsm"];
    max.stringValue = @"30";
    
    [set addChild:max];
    
    [list addChild:set];
    [iQ addChild:list];
    [[[self appDelegate] xmppStream] sendElement:iQ];
    

    你可以这样打电话。希望这会有所帮助:)

    【讨论】:

    • 嗨,Karun,感谢您提供这段有用的代码。当我在我的应用程序中执行代码时,服务器给我的响应为 service-unavailable,错误代码为 503。您能否建议我可能出错的地方。响应来自委托方法- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq。谢谢。
    • @Yogi 我面临同样的问题。您找到解决方案了吗?
    • 如果我在 Swift 3 中实现该功能,我将收到错误 501。功能未实现
    • 您还需要在 Openfire 服务器中安装 Openfire 插件,但您不会得到您想要的确切内容stackoverflow.com/questions/42084375/…
    猜你喜欢
    • 2012-04-12
    • 2020-12-10
    • 2017-01-15
    • 2015-01-23
    • 2016-07-07
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多