다음과 같은 방법으로 smack 양식 mysql을 사용하여 보관 된 메시지를 가져옵니다. DB에서 마지막 maxResults
개의 결과를 반환합니다. 아래 코드는 기본적으로 기존 라이브러리 메서드를 사용하여 반환을 가져옵니다.
public MamManager.MamQueryResult getArchivedMessages(String jid, int maxResults) {
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(jid);
form.addField(formField);
RSMSet rsmSet = new RSMSet(maxResults, "", RSMSet.PageDirection.before);
MamManager.MamQueryResult mamQueryResult = mamManager.page(form, rsmSet);
return mamQueryResult;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
기능 아래에 매겨진 방법의 사용이 도움이
public MamManager.MamQueryResult getMessageBefore(String jid, String messageId) {
MamManager mamManager = MamManager.getInstanceFor(connection);
try {
MamManager.MamQueryResult mamQueryResult =
mamManager.pageBefore(JidCreate.bareFrom(jid), messageId, pageSize);
return mamQueryResult;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
희망이를 얻으려면.