- 私の質問が本当の質問ではないとマークされた後に試してください。
これが私がやろうとしていることです:
例として「サーバー」と呼ばれるユーザーを使用して、開いている 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() が非同期呼び出しであることだと考えています..
誰かがこれに対する解決策を知っていますか? または別の方法?