1

サブスクライバーは、ノードにサブスクライブした時点からコンテンツのみを受信し、パブリッシャーによって公開されたすべての古いコンテンツはサブスクライバーによって受信されません。これは正しいです?サブスクライバーが以前の古いコンテンツをすべて受け取るにはどうすればよいですか?

4

1 に答える 1

4

ノードを永続的または一時的に構成できます。仕様 (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: ここで一種のペア プログラミングを行っていると感じる理由を教えてください。;)

于 2009-10-16T13:49:52.877 に答える