Frage

Der Abonnent erhält nur von dem Moment an, in dem er einen Knoten abonniert, und alle von Publisher veröffentlichten alten Inhalte werden nicht vom Abonnenten empfangen. Ist das richtig? Darf ich wissen, was muss ich tun, damit der Abonnent alle früheren alten Inhalte empfängt?

War es hilfreich?

Lösung

Sie können Ihre Knoten so konfigurieren, dass sie anhaltend oder vorübergehend sind. Laut dem Specifictaion (XEP-0060):

Ob der Knoten anhaltend oder transient ist, wird durch das Konfigurationsfeld "PubSub#Persist_items" bestimmt.

Ihr PubSub -Dienst (oder Server) ist jedoch möglicherweise konfiguriert, um die Persistenz von Ereignissen zu ignorieren. (Wenn Sie OpenFire verwenden, gibt es meiner Meinung nach eine konfigurierbare Grenze für die maximale Gesamtgröße der gespeicherten Elemente.)

Wie ich weiß, benutzt du Smackx-Pubsub, Hier ist ein Code:

// 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: Kannst du mir sagen, warum ich das Gefühl habe, dass wir hier eine Art Paarprogrammierung machen? ;))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top