processone / ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
https://www.process-one.net/ejabberd/
Other
6.12k stars 1.51k forks source link

Broadcast presence change after multicast presence packet #694

Open mremond opened 9 years ago

mremond commented 9 years ago

After having send a presence multicast directed presence, we need to keep track of it in c2s state to broadcast presence changes.

When sending a directed presence multicast packet, we need to keep track of all of the recipient as directed presence target.

If you send this multicast presence, you are able to join two MUC rooms with a single packet:

<presence to='multicast.localhost'>
    <addresses xmlns='http://jabber.org/protocol/address'>
        <address type='bcc' jid='testroom@conference.localhost/Usernick'/>
        <address type='bcc' jid='testroom2@conference.localhost/Usernick'/>
    </addresses>
</presence>

However, when you disconnect, you are still seen as online in those rooms.

Discussion on StackOverflow: http://stackoverflow.com/questions/31781137/how-to-join-multiple-rooms-by-just-sending-one-presence-message-to-ejabberd-se

Nitin3589 commented 9 years ago

I have ejabberd 15.07 setup and have enabled mod_multicast module , for sending multicast presence packet which is not working and i also monitor exceptionally high cpu usage on server .

mremond commented 9 years ago

@Nitin3588 You should update to 15.09 as we fix an issue that could relate to your problem.

cromain commented 9 years ago

15.09 includes some fixes. broadcast of the unavailable presence remains to be done. a XEP update was submitted and we are waiting for approval

mremond commented 9 years ago

For the record, depends on https://github.com/xsf/xeps/pull/41

mremond commented 8 years ago

@alexeyshch The XEP has been updated. The change can now be added to ejabberd 😄

MattFoley commented 7 years ago

Was this ever resolved?

Neustradamus commented 3 years ago

Have you progressed on it?