以下是我要做的事情:
我使用一个名为“server”的用户创建一个打开Accessmodel的节点作为示例
`
ConfigureForm form = new ConfigureForm(FormType.submit);
form.setPersistentItems(false);
form.setDeliverPayloads(true);
form.setAccessModel(AccessModel.open);
MyNode = (LeafNode) manager.createNode(nodeName);`
我使用另一个名为“test”的用户。我得到节点,我正在尝试添加带有内容的有效载荷项
try {
myNode = (LeafNode) manager.getNode(nodeName);
System.out.println("works");
} catch (XMPPException e) {
System.out.println("works not");
e.printStackTrace();
}
SimplePayload payload = new SimplePayload("session",
"pubsub:NewNode:session",
"<sessionId>testcontent</sessionId>");
// putting null for id means you let server generate id
PayloadItem<SimplePayload> item = new PayloadItem<SimplePayload>(null, payload);
myNode.publish(item);
所以..当我发布节点时,没有项目连接到节点(作为两个用户)。当我使用myNode.send(item)时;当我是用户“测试”时,我无法使用send,因为此用户没有创建节点。结果将是禁止(403)错误。 我想也许问题是,publish()是一个异步调用..
有谁知道这方面的解决方案?或者其他方式?