Is there a way to determine which Mulit User Conferences (MUC) users have joined the user?

I wonder if there is a way to query the XMPP server (transmit JID JID?) To find out what chat rooms this user is currently in? If not, can we query the jabber server to get a list of all active chats?

By the way, we are launching ejabber for multi-user chat. A solution using a java library (smack?) Would be ideal.

+5
source share
3 answers

As mentioned by Joe Hildebrand, such a standard feature does not exist, since it is a privacy violation to allow this through XMPP, so you cannot expect this from Smack. Perhaps with administrator privileges you can create your own protocol extension, but this seems risky.

However, at the server level, you should be able to write your own module for ejabberd, which will query or index all user numbers. This is not standard, and there is plugin development.

+3
source

There are two (possibly three) XMPP objects that have this information:

  • XMPP MUC component that provides the MUC room
  • XMPP user client (or better, the XMPP library used by the user)
  • XMPP server possible (but not ignored)

( XMPP XEPs) . , , .

MUC, (, XMPP ), XMPP. iq get. :

<iq type='get' from='juliet@capulet.lit/balcony' to='capulet.lit' id='q1'>
  <query xmlns='http://jabber.org/protocol/muc#joinedrooms'/>
</iq>

, , . http://jabber.org/protocol/muc#joinedrooms .

, , .

MUC , , . , , , , . , .

+1

Getting all chats without any problems, just use this request .

It seems that the question already arises of how to get rooms with smack. Take a look here .

0
source

All Articles