Вопрос

Абонент будет получать контент только с момента, как он подписывается на узел, и весь старый контент, опубликованный издателем, не будет получен подписчиком. Это правильно? Могу я узнать, что мне нужно сделать, чтобы абонент получил весь предыдущий старый контент?

Это было полезно?

Решение

Вы можете настроить свои узлы, чтобы быть постоянными или переходными. Согласно 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: Можете ли вы сказать мне, почему у меня есть ощущение, что мы делаем какое -то парное программирование здесь? ;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top