smack 3.2.2
ejabberd 2.1.10
this is my code:
ConnectionConfiguration config = new ConnectionConfiguration("localhost", 5222); con = new XMPPConnection(config); con.connect(); con.login("lutas", "111111"); PubSubManager manager = new PubSubManager(con, "pubsub."+con.getServiceName());
ConfigureForm form = new ConfigureForm(FormType.submit);
form.setPersistentItems(true);
form.setDeliverPayloads(true);
form.setAccessModel(AccessModel.open); LeafNode myNode = manager.createNode("TestNode-ot121");
myNode.sendConfigurationForm(form); SimplePayload payload = new SimplePayload("book","pubsub:test:book", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>");
PayloadItem item = new PayloadItem("item-nnn", payload);
// Required to recieve the events being published
myNode.addItemEventListener(new ItemEventListener<Item>() { @Override
public void handlePublishedItems(ItemPublishEvent<Item> arg0) {
System.out.println(arg0);
}
}); // Publish item
myNode.send(item); myNode.addItemEventListener(new ItemEventListener<Item>() { @Override
public void handlePublishedItems(ItemPublishEvent<Item> i) {
System.out.println(i);
}
});
myNode.subscribe("lutas@localhost");
I set the elementName and namespace is empty, the was successful.
I do not know the elementName and namespace can play a role.
like this:
SimplePayload payload = new SimplePayload("","", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>");
PayloadItem item = new PayloadItem("item-nnn", payload);
消息编辑者为:Lutas