订户将从他订阅节点的那一刻起只能接收内容,并且发布者发布的所有旧内容都不会由订户收到。这个对吗?我可以知道,为了让订户收到所有以前的旧内容,我需要做什么?

有帮助吗?

解决方案

您可以将节点配置为持久或瞬态。根据 特定(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