Hello Florian,

On 4 Aug 2015, at 18:39, Florian Schmaus wrote:

On 03.08.2015 22:21, Mickaël Rémond wrote:
What happens next is unspecified, but I think it should be as follow:

Maybe I'm missing something, but why is that underspecified? The server
of the user sending the presences with xep33 should simply behave like
the user had send multiple single presence stanzas.

The Multicast service is not necessarily on the same server that the user using the multicast service. It means that the user server may not support multicast and the user may be using a remote multicast service. In that case the server does not know (and doesn't need to know) about the extended stanza addressing behaviour. It just broadcast directed presence to the multicast service.

Moreover, it avoid special case in the server router as that multicased directed presence is correctly offloaded to the service. We thus have a better separation of concerns.

* When you send an extended addressing presence stanza through a
 multicast service, the multicast service MUST keep track of the
entities that have received the the individual directed presence packet.

I don't think it's the responsibility of the xep33 (extended stanza
addressing, multicast) service to keep track of the directed presences.
That should be taken care of whatever component of the server
implementation does take care of non-xep33 directed presences.

I think it that case, it is the responsibility of the XEP-0033 service for the reason explained above. The user server may simply not know about the multicast protocol and it should not have to handle a special case to understand the extended stanza addressing behaviour. I think adding that simple rule makes everything much cleaner from a server developer perspective.

* When the multicast service receive an unavailable presence stanza
 without extended addresses, it MUST broadcast the updated presence
 to all the JID that have received a directed presence previously (if
 the multicast service has not yet sent unavailable presence to that
 entity, through a previous extended stanza presence).pres

Like above: I would not consider the multicast service responsible. You
need already a server mechanism which keeps track of presence sessions
caused by directed presences. Why not make that mechanism xep33 aware,
instead of offloading the work to the xep33 service?

Because it spread the XEP 0033 logic across different part of the server without a real need to do so and it will only work well if the server of the user is aware of the XEP33. Nothing prevent a user to use a multicast service on another server. In that case, multicast presence will not work.

But anyway, I never considered xep33 with regard to presences. That
opens interesting possibilities. Thanks for pointing out that xep33 can
be used to join multiple MUCs with a single presence stanza. :)

Yes, I understand as I never considered it as well, until I was asked how to join multiple chatroom in a single packet. I considered that impossible until I realized that XEP33 was also about presence.

I hope it makes sense to you :)

Thanks for your feedback !

--
Mickaël Rémond
 http://www.process-one.net

Reply via email to