3
votes

I am a bit confused about how XEP-0114 works. Does servicing a domain using a component mean that the server will no longer do anything on behalf of that domain, or does it just mean that the component will ALSO be allowed to service all users on that domain.

More specifically, is it possible to have multiple components servicing the same domain? For example, one component could handle MUC, another could store all messages in a history store, and a third could handle the roster, etc... All while the XMPP server continues handling the user like it normally would - and replying to presence, iq packets, etc... What this means is that components would have to be written so that their realm doesn't intersect with each other.

1
Server will route all packets to [email protected] to your external component script. I explained in detail about how a component works and how to write one using php. abhinavsingh.com/blog/2010/08/…Abhinav Singh
@Abhinav So I gather that all stanzas are passed on to the component, but what about presence subscriptions? Will the jabber server maintain a roster for any user, or is it entirely the responsibility of the component to maintain every user's roster?dhruvbird

1 Answers

3
votes

Answering @dhruvbird's second question in the comments above, if you have delegated a domain to your XEP-114 component, that component is responsible for everything about that domain, including all of the presence states of the users in that domain. That is possible, if tedious, but make sure you've read the new RFC 6121 recently.

Note: most servers have a component that implements all of this presence subscription logic - it's where the real IM business logic is implemented. You'll effectively be writing a replacement for that logic, so make sure there's no other way to solve your problem first.