[jdev] Retrieving items list for a pubsub nide

Sergei Golovan sgolovan at nes.ru
Wed Mar 12 12:22:16 CDT 2008


Looking at section 5.5 of XEP-0060
(http://www.xmpp.org/extensions/xep-0060.html#entity-discoveritems) I
see that disco#items query is used for retrieving published items

However, published items are very different from disco#items. If a
naive client attempts to interpret published item as an ordinary disco
item it will succeed but the result will be quite strange.


<iq id='21' to='some at jid' type='get' xml:lang='en'>
      <query xmlns='http://jabber.org/protocol/disco#items'

<iq from='some at jid' id='21' type='result' to='some at jid/resource'>
      <query node='http://jabber.org/protocol/mood'
            <item name='mood1' jid='some at jid'/>
            <item name='mood2' jid='some at jid'/>

A client will interpret the answer as if JID "some at jid" have a natural
name (as in XEP-0030) "mood1" or "mood2".

To be able to process items list correctly two conditions must be met:
1) A client must support pubsub.
2) A client must know that a discovered node is a pubsub leaf node
(so, it must perform a preliminary disco#info query) and its
interpretation of disco#items query must depend on the context (which
makes client development more complicated).

Is there any valid reason why disco#items query is used for requesting
published items (except that both are items)? Maybe it would be better
to switch to some more appropriate custom protocol?

Sergei Golovan

More information about the JDev mailing list