public final class MultiUserChatManager extends Manager
Use getMultiUserChat(EntityBareJid) to retrieve an object representing a Multi-User Chat room.
Automatic rejoin: The manager supports automatic rejoin of MultiUserChat rooms once the connection got
re-established. This mechanism is disabled by default. To enable it, use setAutoJoinOnReconnect(boolean).
You can set a AutoJoinFailedCallback via setAutoJoinFailedCallback(AutoJoinFailedCallback) to get
notified if this mechanism failed for some reason. Note that as soon as rejoining for a single room failed, no
further attempts will be made for the other rooms.
| Modifier and Type | Method and Description |
|---|---|
void |
addInvitationListener(InvitationListener listener)
Adds a listener to invitation notifications.
|
void |
decline(org.jxmpp.jid.EntityBareJid room,
org.jxmpp.jid.EntityBareJid inviter,
java.lang.String reason)
Informs the sender of an invitation that the invitee declines the invitation.
|
java.util.List<HostedRoom> |
getHostedRooms(org.jxmpp.jid.DomainBareJid serviceName)
Returns a List of HostedRooms where each HostedRoom has the XMPP address of the room and the room's name.
|
static MultiUserChatManager |
getInstanceFor(XMPPConnection connection)
Get a instance of a multi user chat manager for the given connection.
|
java.util.Set<org.jxmpp.jid.EntityBareJid> |
getJoinedRooms()
Returns a Set of the rooms where the user has joined.
|
java.util.List<org.jxmpp.jid.EntityBareJid> |
getJoinedRooms(org.jxmpp.jid.EntityJid user)
Returns a List of the rooms where the requested user has joined.
|
MultiUserChat |
getMultiUserChat(org.jxmpp.jid.EntityBareJid jid)
Creates a multi user chat.
|
RoomInfo |
getRoomInfo(org.jxmpp.jid.EntityBareJid room)
Returns the discovered information of a given room without actually having to join the room.
|
java.util.List<org.jxmpp.jid.DomainBareJid> |
getXMPPServiceDomains()
Returns a collection with the XMPP addresses of the Multi-User Chat services.
|
boolean |
isServiceEnabled(org.jxmpp.jid.Jid user)
Returns true if the specified user supports the Multi-User Chat protocol.
|
boolean |
providesMucService(org.jxmpp.jid.DomainBareJid domainBareJid)
Check if the provided domain bare JID provides a MUC service.
|
void |
removeInvitationListener(InvitationListener listener)
Removes a listener to invitation notifications.
|
void |
setAutoJoinFailedCallback(AutoJoinFailedCallback failedCallback)
Set a callback invoked by this manager when automatic join on reconnect failed.
|
void |
setAutoJoinOnReconnect(boolean autoJoin)
If automatic join on reconnect is enabled, then the manager will try to auto join MUC rooms after the connection
got re-established.
|
connection, getAuthenticatedConnectionOrThrow, schedulepublic static MultiUserChatManager getInstanceFor(XMPPConnection connection)
connection - public MultiUserChat getMultiUserChat(org.jxmpp.jid.EntityBareJid jid)
join the chat room. On some server implementations, the room will not be
created until the first person joins it.
Most XMPP servers use a sub-domain for the chat service (eg chat.example.com for the XMPP server example.com). You must ensure that the room address you're trying to connect to includes the proper chat sub-domain.
jid - the name of the room in the form "roomName@service", where "service" is the hostname at which the
multi-user chat service is running. Make sure to provide a valid JID.public boolean isServiceEnabled(org.jxmpp.jid.Jid user) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException
user - the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com.XMPPException.XMPPErrorExceptionSmackException.NoResponseExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic java.util.Set<org.jxmpp.jid.EntityBareJid> getJoinedRooms()
public java.util.List<org.jxmpp.jid.EntityBareJid> getJoinedRooms(org.jxmpp.jid.EntityJid user) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException
user - the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com.XMPPException.XMPPErrorExceptionSmackException.NoResponseExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic RoomInfo getRoomInfo(org.jxmpp.jid.EntityBareJid room) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException
room - the name of the room in the form "roomName@service" of which we want to discover its information.XMPPException.XMPPErrorExceptionSmackException.NoResponseExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic java.util.List<org.jxmpp.jid.DomainBareJid> getXMPPServiceDomains() throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException
XMPPException.XMPPErrorExceptionSmackException.NoResponseExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic boolean providesMucService(org.jxmpp.jid.DomainBareJid domainBareJid) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException
domainBareJid - the domain bare JID to check.true if the provided JID provides a MUC service, false otherwise.SmackException.NoResponseExceptionXMPPException.XMPPErrorExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic java.util.List<HostedRoom> getHostedRooms(org.jxmpp.jid.DomainBareJid serviceName) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, java.lang.InterruptedException, MultiUserChatException.NotAMucServiceException
serviceName - the service that is hosting the rooms to discover.XMPPException.XMPPErrorExceptionSmackException.NoResponseExceptionSmackException.NotConnectedExceptionjava.lang.InterruptedExceptionMultiUserChatException.NotAMucServiceExceptionpublic void decline(org.jxmpp.jid.EntityBareJid room, org.jxmpp.jid.EntityBareJid inviter, java.lang.String reason) throws SmackException.NotConnectedException, java.lang.InterruptedException
room - the room that sent the original invitation.inviter - the inviter of the declined invitation.reason - the reason why the invitee is declining the invitation.SmackException.NotConnectedExceptionjava.lang.InterruptedExceptionpublic void addInvitationListener(InvitationListener listener)
listener - an invitation listener.public void removeInvitationListener(InvitationListener listener)
listener - an invitation listener.public void setAutoJoinOnReconnect(boolean autoJoin)
autoJoin - true to enable, false to disable.public void setAutoJoinFailedCallback(AutoJoinFailedCallback failedCallback)
null,then automatic rejoin get also enabled.failedCallback - the callback.