With ejabberd and gtalk (and IIRC jabberd too), if I send a message to
[email protected] for example, and jdoe is listening through multiple client
resources, like [email protected]/desktop, [email protected]/laptop,
[email protected]/phone, he'll get a copy of the message on each resource.
From what I can see in my test environment, Vysper seems to behave
differently and only delivers the message to one of the connected resources.
Is there a way to send a message to all connected resources like the
other servers do? or did I miss anything in the way I've constructed the
XMPPServer [1]?
I've checked the XMPP specs:
XMPP Core - RFC 3920 Section 10.5 [2] says
'should deliver the stanza to at least one of the connected resources'
XMPP IM - RFC 3921 Section 11.1 [3] says
'MAY choose between them or MAY deliver the message to all such resources'
Then XEP-0259 [4] introduces a protocol extension allowing device
resources to control which one should receive the messages.
So, I'm not an XMPP expert... but unless Vysper implements XEP-0259 --
or another relevant XMPP extension from this spec maze :) -- I think it
would make sense to send the message to all connected resources (unless
they have indicated a negative priority, as described in [3].)
Thoughts?
[1]
http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/components/chat/test/TestVysperServer.java
[2] http://xmpp.org/rfcs/rfc3920.html#rules
[3] http://xmpp.org/rfcs/rfc3921.html#rules
[4] http://xmpp.org/extensions/xep-0259.html
--
Jean-Sebastien