Question

L'abonné ne recevra que le contenu du moment où il est à un nœud subscripting et tout ancien contenu publié par l'éditeur ne sera pas reçu par l'abonné. Est-ce correct? Puis-je savoir, qu'est-ce que je dois faire pour que l'abonné de recevoir tous les précédents vieux contenu?

Était-ce utile?

La solution

Vous pouvez configurer vos noeuds pour être persistant ou transitoire. Selon le specifictaion (XEP-0060) :

  

Si le noeud est persistant ou transitoire est déterminée par le champ de configuration « # PubSub de persist_items ».

Cependant, votre service de PubSub (ou serveur) peuvent être configurés pour ignorer la persistance des événements. (Si vous utilisez Openfire, je pense qu'il ya une limite configurable pour la taille totale maximale des éléments stockés)

Comme je sais que vous utilisez smackx-PubSub, voici un 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: Pouvez-vous me dire pourquoi je le sentiment que nous faisons une sorte de programmation paire ici? ;)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top