> > However, when the management component needs to forward the
> information on, it needs the full jid to send the IQ too.  How do I find this 
> full
> jid? How do I determine the resource being used by a particular user in order
> to deliver my Iq. This is a push based system so I can't rely on an incoming
> message from the client and get the full jid that way.
> 
> Use presence. It will also tell you when a consuming client is online, so you
> don't send things to offline storage.

I thought of using presence but I thought presence only provides the bare jid. 

> 
> > Under the rules you guys pointed me to, IQs don't work if more than one
> resource is on line.
> 
> Well, <iq/> to the bare jid will be handled by the recipients server. It will 
> not
> be forked to the clients like <message/>, not even if there is only one client
> connected.

I could be reading this totally wrong but RFC 6121 (section 8.5.2.1.3) says 
that when sending IQs using a bare jid, the server should either handling it 
itself (which it can't) or respond with a "service-unavailable" error. That 
section doesn't seems to only apply in cases where there are multiple resources 
for that recipient. I assume the IQ is delivered normally if there is only one 
resource. For the record, this will mainly run in an environment with a single 
server. That is why I need to find out what the resource is so I can attempt to 
deliver the IQ directly to that user.

Reply via email to