- 在我的问题被标记为非真实问题后尝试。
这是我正在尝试做的事情:
我使用名为“服务器”的用户创建一个具有开放 Accessmodel 的节点作为示例
`
ConfigureForm form = new ConfigureForm(FormType.submit); form.setPersistentItems(false); form.setDeliverPayloads(true); form.setAccessModel(AccessModel.open); MyNode = (LeafNode) manager.createNode(nodeName);`
我使用另一个名为..“测试”的用户。我得到了节点,我正在尝试添加一个带有内容的有效负载项
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); 当我是用户“测试”时,我无法使用发送,因为该用户没有创建节点。结果将是一个禁止(403)错误。我在想也许问题是,publish() 是一个异步调用..
有谁知道这个的解决方案?或其他方式?