java聊天历史转发消息是空的ArrayList
我正在尝试实现一个与Openfire服务器交互的java smack客户端。我添加了监控服务插件,还启用了归档。现在我可以在openFire管理控制台中查看聊天历史记录。我想用Smack做同样的事情。这是我写的代码
XMPPTCPConnection connection = connectToXMPP(Constants.XMPPADMINUSERNAME, Constants.XMPPADMINPWD ,Constants.XMPPDOMAIN);
MamManager mamManager = MamManager.getInstanceFor(connection);
try {
DataForm form = new DataForm(DataForm.Type.submit);
FormField field = new FormField(FormField.FORM_TYPE);
field.setType(FormField.Type.hidden);
field.addValue(MamElements.NAMESPACE);
form.addField(field);
FormField formField = new FormField("with");
formField.addValue("userlocal1@125.99.44.122");
form.addField(formField);
boolean isSupported = mamManager.isSupported();
// "" empty string for before
RSMSet rsmSet = new RSMSet(maxResults, "", RSMSet.PageDirection.before);
MamManager.MamQueryResult mamQueryResult = mamManager.page(form, rsmSet);
// MamManager.MamQueryResult mamQueryResult1 = mamManager.queryArchive(JidCreate.from("userlocal1@125.99.44.122"));
return mamQueryResult;
} catch (Exception e) {
e.printStackTrace();
}
return null;
现在的问题是forwardedMessages ArrayList始终为空。我做错了什么??isSupported是真实的,我可以在管理控制台上查看聊天历史记录…请指导
# 1 楼答案
我注意到您正在尝试获取最后几条存档邮件,这很有意义。但我不确定您的“before”值是否应该为空。出于测试目的,请尝试反转页面方向,并查看是否可以获取第一条/最早的几条存档邮件