I am using smack 4.1.0.
I want to send custom payload while publishing to a pubsub node, which I am doing like following:
public void addItem(String topicId, TopicExtension topicExtension) {
try {
PubSubManager topicManager = new PubSubManager(connection);
LeafNode leafNode = topicManager.getNode(topicId);
PayloadItem topicPayload=new PayloadItem(topicExtension);
leafNode.send(topicPayload);
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
}
and the resultant XML stanza which is being published is following:
At receiving end, I am receiving the message like this:
To handle published items I am handling like this:
PubSubManager topicManager = new PubSubManager(connection);
LeafNode eventNode = topicManager.getNode(“first topic1493009083948”); // harcoded node id for testing
eventNode.addItemEventListener(new ItemEventListener() {
@Override
public void handlePublishedItems(ItemPublishEvent items) {
Log.v(“Received published item”, items.toString());
}
});
But now, how do I convert the published items payload into an actual object? I have my TopicExtension class which implements ExtensionElement.
Please help, as I spent a whole day getting payload data but to vain. My last resort will be using custom XML parser but i am sure there is a better way.Smack Support @Flow @rcollier @CSH @wroot