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