Pergunta

O assinante receberá apenas conteúdo a partir do momento em que ele está inscrevendo em um nó e todo o conteúdo antigo publicado pelo editor não será recebido pelo assinante. Isso está correto? Posso saber, o que preciso fazer para que o assinante receba todo o conteúdo antigo anterior?

Foi útil?

Solução

Você pode configurar seus nós para serem persistentes ou transitórios. De acordo com Especification (XEP-0060):

Se o nó é persistente ou transitório é determinado pelo campo de configuração "pubsub#persist_items".

No entanto, seu serviço de pubsub (ou servidor) pode ser configurado para ignorar a persistência dos eventos. (Se você está usando o OpenFire, acho que há um limite configurável para o tamanho total máximo dos itens armazenados)

Como eu sei, você está usando Smackx-Pubsub, aqui está algum código:

// 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: Você pode me dizer por que tenho a sensação de que estamos fazendo uma espécie de programação de pares aqui? ;)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top