[jdev] Best ways for a JID to advertise what services it uses?
Justin Karneges
justin-keyword-jabber.093179 at affinix.com
Tue Sep 21 14:24:16 CST 2010
On Tuesday 21 September 2010 07:15:40 Dave Cridland wrote:
> On Tue Sep 21 14:34:54 2010, Stephen Pendleton wrote:
> > The answer to this is key to interoperability for pubsub. If I can't
> > discover the location your nodes I cannot interoperate with you.
>
> Right, and the ideal answer is to use PEP - or rather,
> pubsub-onna-jid.
>
> But in some cases you don't want to (because your PEP service is
> minimal) or can't (because you have no PEP at all).
>
> It's not yet clear to me that a solution is possible.
And maybe you're not always looking for a pubsub service. There's all sorts
of additional metadata and application logic that one might want to associate
with a user account. However, it's not practical that every XMPP user account
server in the world implement every extension. And having to limit your
application to only those user accounts with special baked-in extensions
sucks.
At Livefyre, we've attempted to solve this problem by introducing the idea of
delegate services. Instead of adding extensions to the user accounts
themselves, any arbitrary user account is able associate itself with a
delegate service which provides the extensions. The problem with this, of
course, is the same as that of the pubsub problem: given a user account JID
alone there is currently no way to know what or where the delegated services
for that JID are.
Something like this might help:
<iq type="get" to="user at example.com" id="1">
<query xmlns="http://jabber.org/protocol/delegate"/>
</iq>
<iq type="result" from="user at example.com" id="1">
<query xmlns="http://jabber.org/protocol/delegate">
<service type="pubsub" jid="users.freepubsubforall.com"/>
<service type="livefyre" jid="services.livefyre.com"/>
</query>
</iq>
Just tossing it out as a rough idea to start from.
-Justin
More information about the JDev
mailing list