Pedido de assinatura do Openfire Android PubSub aprovado
Eu sou novo no Openfire e smack, portanto, tenho dúvidas sobre o recurso pubsub. Na verdade, eu criei um nó comsetAccessModel Comoautorizar, mostrado abaixo.
PubSubManager mgr = new PubSubManager(xmpp.getConnection());
try {
LeafNode leaf = mgr.createNode("testNode");
ConfigureForm form = new ConfigureForm(DataForm.Type.submit);
form.setAccessModel(AccessModel.authorize);
form.setDeliverPayloads(true);
form.setNotifyRetract(true);
form.setPersistentItems(true);
form.setPublishModel(PublishModel.open);
leaf.sendConfigurationForm(form);
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
Minha pergunta é que, quando alguém deseja se inscrever no nó acima, como o proprietário desse nó pode lidar com a solicitação de assinatura? A parte da assinatura é a seguinte:
PubSubManager mgr = new PubSubManager(xmpp.getConnection());
// Get the node
LeafNode node = null;
try {
node = mgr.getNode("testNode");
node.addItemEventListener(new ItemEventCoordinator());
node.subscribe(senderUser+"@desi.loc");
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
class ItemEventCoordinator implements ItemEventListener {
@Override
public void handlePublishedItems(ItemPublishEvent items) {
final ItemPublishEvent itemstemp=items;
runOnUiThread(new Runnable() {
@Override
public void run() {
//stuff that updates ui
dspySub.setText("Item: " + itemstemp.getItems());
}
});
}
}
Quando defino form.setAccessModel (AccessModel.abrir) tudo funciona bem. Os usuários podem publicar e se inscrever facilmente, mas quando o AccessModel é autorizado, o proprietário não escuta ou pode ser que eu não saiba como lidar com a solicitação de assinatura no lado do proprietário com o código acima. Por favor, me guie.