3

I've been attempting to read XEP-0030 Service Discovery but found the language pretty opaque.

My question is simple: What is the difference between the disco#info spec and the disco#items spec?

My guess is to say that disco#info is the request and disco#items is the response but that does not seem to match up to the way I am interpreting the documentation.

Flow
  • 23,572
  • 15
  • 99
  • 156
Matt Copperwaite
  • 280
  • 4
  • 10

1 Answers1

4

Basically:

#info query results will show you amongst others the supported features of a XMPP entity (e.g. XHTML-IM support).

#item query results will show the available items of a XMPP entity. For example the XEP-0045 MUC component of a XMPP service. But any other available service/component could show up here.

One could also say that #info is used to query the features of this particular entity, while #items is used to query for "sub-components" of that entity, which itself are usually be queried with #info for their features.

Flow
  • 23,572
  • 15
  • 99
  • 156
  • Cheers for cleaning up my question but the way but I'm wondering if you can clarify something: `#info` requests supported features and `#item` requests available features. So you could have a feature that is supported but not available? But I suppose you couldn't have features that aren't supported but are available? Or are these XMPP entities potentially different kinds of entities? – Matt Copperwaite Sep 19 '13 at 15:45
  • No, you always relate` `#item` with features, but this is wrong and seems to confuse you. `#item` just used to discover items (e.g. components) not features. – Flow Sep 19 '13 at 15:46
  • Ah, so the difference is that `#info` lists features which are client side supported and `#item` lists components which are server side supported? Is that along the right lines? – Matt Copperwaite Sep 19 '13 at 15:54
  • That is nearly correct: `#item` can be used von every XMPP entity, not just server services. – Flow Sep 19 '13 at 16:17