gpt4 book ai didi

java - 使用 smack 从消息存档 openfire 中获取最新对话

转载 作者:行者123 更新时间:2023-11-29 09:00:11 25 4
gpt4 key购买 nike

大家好,我正在使用这些代码行来使用 smack 获取对话列表

@Override
protected Void doInBackground(String... strings) {

final ArrayList<UsersData> users
= UsersManager.getInstance().getUsers();

int count = 0;
while(count < users.size()) {

try {
Thread.sleep(500);
final String jid
= users.get(count).getUserJID();

IQ iq = new IQ() {

@Override
public String getChildElementXML() {
String list = "<list xmlns='urn:xmpp:archive'"+
"with='"+jid+"'>"+
"<set xmlns='http://jabber.org/protocol/rsm'>"+
"<max>30</max></set></list>";
return list;
}
};

iq.setType(IQ.Type.GET);
iq.setPacketID(jid+System.currentTimeMillis());

service.getXmppConnection().sendPacket(iq);
Log.v("XmppAsyncHistory", "IQ List sent!");

} catch (InterruptedException e) {
e.printStackTrace();
}

count++;
}

return null;
}

我已经添加了我的 iq 供应商。

        provider.addIQProvider("list", "urn:xmpp:archive", new ListIQProvider());

我收到了这节回复。

D/SMACK(11130): 10:34:30 PM RCV  (1096010080): 
<iq type="result"
id="24@suitmedia1375112070174"
to="17@suitmedia/Smack"><list xmlns="urn:xmpp:archive">
chat with="24@suitmedia"
start="2013-07-25T09:57:04.121Z"/>
<chat with="24@suitmedia"
start="2013-07-25T11:08:28.997Z"/>
<chat with="24@suitmedia"
start="2013-07-29T09:29:18.295Z"/>
<chat with="24@suitmedia"
start="2013-07-29T07:47:29.841Z"/>
<set xmlns="http://jabber.org/protocol/rsm">
<first index="0">184</first><last>216</last>
<count>4</count></set></list></iq>

如您所见,它返回的不是最新的对话,而是分别从 25/07 到 29/07 的最旧对话

我想问的是这些标签是什么意思? 184216以及如何获取最近时间的 session 列表顺序?

谢谢!

最佳答案

您应该将属性“end”添加到包含当前时间的“list”元素。 XML 将如下所示:

<iq type='get' xmlns='jabber:client'><list xmlns='urn:xmpp:archive' end='2014-05-28T08:48:56+08:00' with='somebody@somesite'><set xmlns='http://jabber.org/protocol/rsm'><max>10</max><before/></set></list></iq>

关于java - 使用 smack 从消息存档 openfire 中获取最新对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com