質問
サブスクライバーは、ノードにサブスクリップしている瞬間からのみコンテンツを受け取り、パブリッシャーが公開しているすべての古いコンテンツはサブスクライバーによって受信されません。これは正しいです?サブスクライバーが以前の古いコンテンツをすべて受け取るために何をする必要があるかを知ってもいいですか?
解決
ノードを永続的または一時的に構成することができます。による specifictaion(xep-0060):
ノードが永続的であるか一時的であるかは、「pubsub#destive_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