1

我正在使用 iOS xmpp 框架。我想在需要时获取房间聊天记录。这样就有了一个按钮,当点击按钮时,每次会收到20条历史消息。

如果我有 100 条历史消息,我点击按钮 5 次,那么我将得到所有的历史消息。

[xmppRoom1 joinRoomUsingNickname:@"myNickname" history:history password:nil];

此方法只能使用一次。

4

2 回答 2

3

在 openfire 中发送历史记录 nil 和 alos 更新 打开您的 openfire 网址,然后单击群聊 > 群聊设置 > 您的群组 > 历史设置

在此处输入图像描述

XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];
        XMPPJID *roomJID = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@conference.51.101.97.21",groupName]];
        XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage
                                                               jid:roomJID
                                                     dispatchQueue:dispatch_get_main_queue()];

        [xmppRoom activate:xmppStream];
        [xmppRoom addDelegate:self
                delegateQueue:dispatch_get_main_queue()];
        [xmppRoom joinRoomUsingNickname:xmppStream.myJID.user
                                history:nil
                               password:nil];
于 2015-06-16T09:03:41.007 回答
1

我使用这种方法,但可以接收任何东西。

NSXMLElement *history = [[NSXMLElement alloc] initWithName:@"history"];
[history addAttributeWithName:@"maxstanzas" stringValue:@"5"];

NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:XMPPMUCNamespace];
if (history)
{
    [x addChild:history];
}
XMPPPresence *presence = [XMPPPresence presenceWithType:nil to:xmppRoom1.myRoomJID];
[presence addChild:x];
[xmppStream sendElement:presence];

发送和接收的消息:

SEND: 
<presence to="ios@conference.192.168.1.67/myNickname”&gt;
<x xmlns="http://jabber.org/protocol/muc”&gt;
    <history maxstanzas="5”/>
</x>

<x xmlns="vcard-temp:x:update"><photo/></x>
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://github.com/robbiehanson/XMPPFramework" ver="VyOFcFX6+YNmKssVXSBKGFP0BS4=“/>

</presence>


RECV: 
<presence xmlns="jabber:client" from="ios@conference.192.168.1.67/myNickname" to="test1@192.168.1.67/14392264591434445057383183”&gt;
<x xmlns="vcard-temp:x:update"><photo/></x>
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://github.com/robbiehanson/XMPPFramework" ver="VyOFcFX6+YNmKssVXSBKGFP0BS4=“/>
<x xmlns="http://jabber.org/protocol/muc#user”&gt;
<item jid="test1@192.168.1.67/14392264591434445057383183" affiliation="owner" role="moderator"/><status code="110”/>
</x></presence>
于 2015-06-16T09:03:33.067 回答