ejabberd
にBOSH Manager
基づいてノードを作成しようとしていますpubsub model
。しかし、同じことをしようとすると、feature-not-implemented
エラーが発生します。その背後にある理由が何であるかは本当にわかりません。
プライバシー上の理由から、実際のドメイン名をexample.com
これが、作成からのスタンザワークフロー全体です->構成の送信->応答の受信。
1) クライアントから送信されるノードを作成する
<body rid='2941054258' xmlns='http://jabber.org/protocol/httpbind' sid='79a157493e8d93a93949c358bd71bc394499bebd'>
<presence xmlns='jabber:client'>
<priority>-1</priority>
</presence>
<iq to='pubsub.example.com' type='set' xmlns='jabber:client' id='5224:sendIQ'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create node='news'/>
</pubsub>
</iq>
</body>
2) サーバーから受信するノードを作成する
<body xmlns='http://jabber.org/protocol/httpbind'>
<presence xmlns='jabber:client' from='hunty@example.com/4529683821343890277773299' to='niharb@example.com/6976111021343894644477923'>
<priority>-1</priority>
<delay xmlns='urn:xmpp:delay' from='hunty@example.com/4529683821343890277773299' stamp='2012-08-02T06:51:19Z'>
</delay>
<x xmlns='jabber:x:delay' stamp='20120802T06:51:19'/>
</presence>
<presence xmlns='jabber:client' from='niharb@example.com/6976111021343894644477923' to='niharb@example.com/6976111021343894644477923'>
<priority>-1</priority>
</presence>
<iq xmlns='jabber:client' from='pubsub.example.com' to='niharb@example.com/6976111021343894644477923' id='5224:sendIQ' type='result'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create node='news'/>
</pubsub>
</iq>
</body>
3) 構成をサーバーに送信する
<body rid='2941054259' xmlns='http://jabber.org/protocol/httpbind' sid='79a157493e8d93a93949c358bd71bc394499bebd'>
<iq to='pubsub.example.com' type='set' xmlns='jabber:client' id='5225:sendIQ'>
<pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
<configure node='news'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#deliver_payloads'>
<value>1</value>
</field>
<field var='pubsub#send_last_published_item'>
<value>never</value>
</field>
<field var='pubsub#persist_items'>
<value>1</value>
</field>
<field var='pubsub#max_items'>
<value>20</value>
</field>
</x>
</configure>
</pubsub>
</iq>
</body>
4) feature-not-implementedというエラーでサーバーから設定を返す
<body xmlns='http://jabber.org/protocol/httpbind'>
<iq xmlns='jabber:client' from='pubsub.example.com' to='niharb@example.com/6976111021343894644477923' type='error' id='5225:sendIQ'>
<pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
<configure node='news'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#deliver_payloads'>
<value>1</value>
</field>
<field var='pubsub#send_last_published_item'>
<value>never</value>
</field>
<field var='pubsub#persist_items'>
<value>1</value>
</field>
<field var='pubsub#max_items'>
<value>20</value>
</field>
</x>
</configure>
</pubsub>
<error code='501' type='cancel'>
<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
</body>