1
  1. 在我的问题被标记为非真实问题后尝试。

这是我正在尝试做的事情:

  1. 我使用名为“服务器”的用户创建一个具有开放 Accessmodel 的节点作为示例

    `

    ConfigureForm form = new ConfigureForm(FormType.submit);
    form.setPersistentItems(false);
    
    form.setDeliverPayloads(true);
    form.setAccessModel(AccessModel.open);
    MyNode = (LeafNode) manager.createNode(nodeName);`
    
  2. 我使用另一个名为..“测试”的用户。我得到了节点,我正在尝试添加一个带有内容的有效负载项

            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() 是一个异步调用..

有谁知道这个的解决方案?或其他方式?

4

0 回答 0