0

XMPP プロトコルを使用するアプリを作成します。最初に開発を開始し、デバッグ用にいくつかの XMPP サーバーを使用しました。それは問題ありませんでした。グラフィック ファイルをローカルに保存し、ユーザー プレゼンスの更新を受信しながらファイル ハッシュをチェックすることで、冗長なアバターの読み込みを防ぐことができました。

しかし、新しい Openfilre サーバーに切り替えたところ、VCard を要求したときだけでなく、ユーザーがログインした直後に何らかのメッセージを使用して、利用可能なすべてのユーザー アバターを送信し続けています。

   <message id="ca82demo01@fffchat__jason@fffchat__jBUhd" to="jason@fffhat/FFFChat" from="ca82demo01@fffchat">
        <event xmlns="http://jabber.org/protocol/pubsub#event">
            <items node="urn:xmpp:avatar:data">
                <item id="66d0dee0216e5466fe17403f1da16aa39d4e1698">
                    <data xmlns="urn:xmpp:avatar:data">... SOME BIG CHUNK OF DATA ...</data>
            </item>
            </items>
        </event>
        <delay xmlns="urn:xmpp:delay" stamp="2012-03-16T00:00:32.298Z"/>
        <addresses xmlns="http://jabber.org/protocol/address">
            <address jid="ca82demo01@fffchat/53bf00a8" type="replyto"/>
        </addresses>
    </message>

Openfire からどのような正確な送信メッセージが要求されているのだろうか? それとも、名簿全体のすべてのアバター グラフィックを常に送信するように Openfire サーバーが構成されているだけですか?

この冗長なトラフィックが発生しないようにするには、どうすればこれを解決できますか?

念のため、これらは発信メッセージです。

<stream:stream to="fffchat.openfire.local" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">

<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>

<?xml version="1.0"?>

<stream:stream to="fffchat.openfire.local" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">

<auth mechanism="DIGEST-MD5" xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>

<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9Imphc29uIixyZWFsbT0icHBpY2hhdCIsbm9uY2U9ImVhcGVpTlNFZ3NOZzRXRFlsVC9zd1cyLzVWbzMzQWlsYzRvZWFRRFIiLGNub25jZT0iMDBERUFEQkVF

<auth mechanism="PLAIN" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">AGphc29uAGFiYzEyMw==</auth>

<?xml version="1.0"?>

<stream:stream to="fffchat.openfire.local" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">

<iq id="_xmpp_bind1" type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>PPIChat</resource></bind></iq>

<iq id="_xmpp_session1" type="set"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>

<iq id="roster1" type="get"><query xmlns="jabber:iq:roster"/></iq>

<presence><show>chat</show><status>online</status><x xmlns="vcard-temp:x:update"><photo>16286eb46a54fb48d70dc4fbd548bcd16f78cd34</photo></x></presence>

<iq type="get"><query xmlns="jabber:iq:private"><ppidata xmlns="ppi:userdata:favorites"/></query></iq>
4

1 に答える 1

1

XEP-0084を使用しようとして、台無しにしてから、XEP-0153に切り替えたようです。XEP-0163を正しく実装するのではなく、テスト アカウントで 1 人以上の人のアバターへの変更を明示的にサブスクライブした可能性があります。これは最初は非常に混乱する可能性があります。最も簡単な修正は、別のアカウントを使用することです。クリーンアップしたい場合は、取得したパブリッシュごとにXEP-0060登録解除プロトコルを送信します。

<iq type='set'
    from='jason@fffhat/FFFChat'
    to='ca82demo01@fffchat'
    id='unsub1'>
  <pubsub xmlns='http://jabber.org/protocol/pubsub'>
     <unsubscribe
         node='urn:xmpp:avatar:data'
         jid='jason@fffhat'/>
  </pubsub>
</iq>
于 2012-03-23T07:49:51.230 に答える