ある日、私が作成したすべての pubsub ノードがなくなり、iq スタンザ経由でそれらを取得できなくなりました。しかし、それらはまだ mysql データベースにあります。とにかく、ノードを作成すると、xml iqスタンザを介して取得できます..
何が起こるか知っている人はいますか?
Edit1: 標準構成で作成したリーフ ノードが 1 日経っても消えないことに気付きました。したがって、それは私の側の構成の問題だと思います。
次のコマンドで pubsub ノードを取得します。
<iq type='get' to='pubsub.server.local'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
または特定のノードの場合:
<iq type='get' to='pubsub.server.local'>
<query xmlns='http://jabber.org/protocol/disco#items' node='Collection1'/>
</iq>
作成後、作成したノードに関するすべての情報を取得するので、それは問題ではありません。1日経っても取り出せません。構成が間違っているか、サーバーが 1 日後にキャッシュのようなものを削除するのでしょうか? しかし、キャッシュを手動で削除しようとしたところ、新しく作成されたノードを取得できました。私が言ったように、それらは 1 日後には取得できません。これは本当に奇妙です..
Edit2:構成
コレクション/コレクション/リーフを次の構成で作成します。
<iq to='pubsub.server.local' type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="Weird"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value> </field>
<field var="pubsub#node_type"><value>collection</value></field>
<field var="pubsub#title"><value>NodeName</value> </field>
<field var="pubsub#description"><value>NodeDescription</value></field>
<field var="pubsub#leaf_node_association_policy"><value>whitelist</value></field>
<field var="pubsub#leaf_node_association_whitelist"><value>owner@server.local</value></field>
</x></configure> </pubsub>
</iq>
所有者の JID をホワイトリストに入れることはできますか?
次に、識別上の理由から「ノード」属性が collection_1234 に設定され、「名前」属性が読み取り可能な名前 Collection2 に設定された最初のコレクションでコレクションを作成して構成します。
<iq to='pubsub.server.local' type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="collection_1234"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value> </field>
<field var="pubsub#node_type"><value>collection</value></field>
<field var="pubsub#collection"><value>Weird</value></field>
<field var="pubsub#title"><value>Collection2</value> </field>
<field var="pubsub#deliver_payloads"><value>1</value></field>
<field var="pubsub#leaf_node_association_whitelist"><value>user1@server.local</value></field>
</x></configure> </pubsub>
</iq>
子 (ここでは Atom) のペイロード タイプは、親コレクション ノード (ここではなし) と同じでなければなりませんか?
Collection2 のリーフ:
<iq to="pubsub.server.local" type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="leaf_1234"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value></field>
<field var="pubsub#collection"><value>collection_1234</value></field>
<field var="pubsub#type"><value>http://www.w3.org/2005/Atom</value></field>
<field var="pubsub#persist_items"><value>1</value></field>
<field var="pubsub#max_items"><value>-1</value></field>
<field var="pubsub#type"><value>http://www.w3.org/2005/Atom</value>
<field var="pubsub#publisher">
<value>nodeowner@server.local</value>
<value>anotheruser@server.local</value>
</field>
</x>
</configure> </pubsub>
</iq>
ノード所有者をパブリッシャーに設定できますか? 値 publishers が標準であるため、#publish_model 変数は省略します。