Domanda

L'utente riceverà solo il contenuto dal momento in cui è subscripting ad un nodo e tutti i vecchi contenuti pubblicati da editore non saranno ricevuti dal sottoscrittore. È corretto? Posso sapere, che cosa devo fare in modo che abbonato di ricevere tutti i precedenti contenuti vecchio?

È stato utile?

Soluzione

È possibile configurare i nodi di essere persistente o transitorio. Secondo il specifictaion (XEP-0060) :

  

Se il nodo è persistente o transitoria è determinato dal campo di configurazione "PubSub # persist_items".

Tuttavia, il servizio di PubSub (o server) possono essere configurati per ignorare la persistenza di eventi. (Se stai usando Openfire, penso che ci sia un limite configurabile per la dimensione totale massima di elementi memorizzati)

Come so che si sta utilizzando smackx-PubSub , ecco qualche codice:

// 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: Mi puoi dire perché ho la sensazione che stiamo facendo una sorta di programmazione in coppia qui? ;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top