题
订户将从他订阅节点的那一刻起只能接收内容,并且发布者发布的所有旧内容都不会由订户收到。这个对吗?我可以知道,为了让订户收到所有以前的旧内容,我需要做什么?
解决方案
您可以将节点配置为持久或瞬态。根据 特定(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:您能告诉我为什么我感觉到我们在这里做一种配对编程吗? )
不隶属于 StackOverflow