Вопрос
Абонент будет получать контент только с момента, как он подписывается на узел, и весь старый контент, опубликованный издателем, не будет получен подписчиком. Это правильно? Могу я узнать, что мне нужно сделать, чтобы абонент получил весь предыдущий старый контент?
Решение
Вы можете настроить свои узлы, чтобы быть постоянными или переходными. Согласно Specifictaion (xep-0060):
Независимо от того, является ли узел постоянным или переходным, определяется полем «Pubsub#persist_items».
Тем не менее, ваша служба Pubsub (или сервер) может быть настроена, чтобы игнорировать настойчивость событий. (Если вы используете OpenFire, я думаю, что существует настраиваемый предел для максимального общего размера хранимых элементов)
Как я знаю, вы используете smackx-pubsub, вот какой -то код:
// create new node
pubSubManager.createNode(nodeId, newConfigureForm(persistent, includePayload, accessModel)
// change existing node
node.sendConfigurationForm(newConfigureForm(persistent, includePayload, accessModel));
private ConfigureForm newConfigureForm(final boolean persistent, final boolean includePayload, final AccessModel accessModel) {
final ConfigureForm form = new ConfigureForm(FormType.submit);
form.setPersistentItems(persistent);
form.setDeliverPayloads(includePayload);
form.setAccessModel(accessModel);
return form;
}
PS: Можете ли вы сказать мне, почему у меня есть ощущение, что мы делаем какое -то парное программирование здесь? ;)