Wildfire 3.2.4 Javadoc

org.jivesoftware.wildfire.muc
Interface MultiUserChatServer

All Superinterfaces:
Component
All Known Implementing Classes:
MultiUserChatServerImpl

public interface MultiUserChatServer
extends Component

Manages groupchat conversations, chatrooms, and users. This class is designed to operate independently from the rest of the Jive server infrastruture. This theoretically allows deployment of the groupchat on a separate server from the main IM server.

Author:
Gaston Dombiak

Method Summary
 void addSysadmin(String userJID)
          Adds a new system administrator of the MUC service.
 void addUserAllowedToCreate(String userJID)
          Adds a new user to the list of JIDs that are allowed to create MUC rooms.
 void enableService(boolean enabled)
          Enables or disables the MUC service.
 MUCRoom getChatRoom(String roomName)
          Obtains a chatroom by name.
 MUCRoom getChatRoom(String roomName, JID userjid)
          Obtains a chatroom by name.
 List<MUCRoom> getChatRooms()
          Retuns a list with a snapshot of all the rooms in the server (i.e.
 MUCUser getChatUser(JID userjid)
          Obtain a chat user by XMPPAddress.
 HistoryStrategy getHistoryStrategy()
          Obtain the server-wide default message history settings.
 int getKickIdleUsersTimeout()
          Returns the time to elapse between clearing of idle chat users.
 int getLogConversationBatchSize()
          Returns the number of messages to save to the database on each run of the logging process.
 int getLogConversationsTimeout()
          Returns the time to elapse between logging the room conversations.
 String getServiceDomain()
          Returns the fully-qualifed domain name of this chat service.
 String getServiceName()
          Returns the subdomain of the chat service.
 Collection<String> getSysadmins()
          Returns the collection of JIDs that are system administrators of the MUC service.
 long getTotalChatTime()
          Returns the total chat time of all rooms combined.
 int getUserIdleTime()
          Returns the number of milliseconds a user must be idle before he/she gets kicked from all the rooms.
 Collection<String> getUsersAllowedToCreate()
          Returns the collection of JIDs that are allowed to create MUC rooms.
 boolean hasChatRoom(String roomName)
          Returns true if the server includes a chatroom with the requested name.
 boolean isRoomCreationRestricted()
          Returns false if anyone can create rooms or true if only the returned JIDs in getUsersAllowedToCreate are allowed to create rooms.
 boolean isServiceEnabled()
          Returns true if the MUC service is available.
 void logConversation(MUCRoom room, Message message, JID sender)
          Logs that a given message was sent to a room as part of a conversation.
 void messageBroadcastedTo(int numOccupants)
          Notification message indicating the server that an incoming message was broadcasted to a given number of occupants.
 void removeChatRoom(String roomName)
          Removes the room associated with the given name.
 void removeSysadmin(String userJID)
          Removes a system administrator of the MUC service.
 void removeUser(JID jabberID)
          Removes a user from all chat rooms.
 void removeUserAllowedToCreate(String userJID)
          Removes a user from list of JIDs that are allowed to create MUC rooms.
 void serverBroadcast(String msg)
          Broadcast a given message to all members of this chat room.
 void setKickIdleUsersTimeout(int timeout)
          Sets the time to elapse between clearing of idle chat users.
 void setLogConversationBatchSize(int size)
          Sets the number of messages to save to the database on each run of the logging process.
 void setLogConversationsTimeout(int timeout)
          Sets the time to elapse between logging the room conversations.
 void setRoomCreationRestricted(boolean roomCreationRestricted)
          Sets if anyone can create rooms or if only the returned JIDs in getUsersAllowedToCreate are allowed to create rooms.
 void setServiceName(String name)
          Set the name of this chat service.
 void setUserIdleTime(int idle)
          Sets the number of milliseconds a user must be idle before he/she gets kicked from all the rooms.
 
Methods inherited from interface org.xmpp.component.Component
getDescription, getName, initialize, processPacket, shutdown, start
 

Method Detail

getServiceDomain

String getServiceDomain()
Returns the fully-qualifed domain name of this chat service. The domain is composed by the service name and the name of the XMPP server where the service is running.

Returns:
the chat server domain (service name + host name).

getServiceName

String getServiceName()
Returns the subdomain of the chat service.

Returns:
the subdomain of the chat service.

setServiceName

void setServiceName(String name)
Set the name of this chat service. The new name won't go into effect until the server is restarted.

Parameters:
name - The chat service name (host name).

getSysadmins

Collection<String> getSysadmins()
Returns the collection of JIDs that are system administrators of the MUC service. A sysadmin has the same permissions as a room owner.

Returns:
a list of bare JIDs.

addSysadmin

void addSysadmin(String userJID)
Adds a new system administrator of the MUC service. A sysadmin has the same permissions as a room owner.

Parameters:
userJID - the bare JID of the new user to add as a system administrator.

removeSysadmin

void removeSysadmin(String userJID)
Removes a system administrator of the MUC service.

Parameters:
userJID - the bare JID of the user to remove from the list.

isRoomCreationRestricted

boolean isRoomCreationRestricted()
Returns false if anyone can create rooms or true if only the returned JIDs in getUsersAllowedToCreate are allowed to create rooms.

Returns:
true if only some JIDs are allowed to create rooms.

setRoomCreationRestricted

void setRoomCreationRestricted(boolean roomCreationRestricted)
Sets if anyone can create rooms or if only the returned JIDs in getUsersAllowedToCreate are allowed to create rooms.

Parameters:
roomCreationRestricted - whether anyone can create rooms or not.

getUsersAllowedToCreate

Collection<String> getUsersAllowedToCreate()
Returns the collection of JIDs that are allowed to create MUC rooms. An empty list means that anyone can create a room.

Returns:
a list of bare JIDs.

addUserAllowedToCreate

void addUserAllowedToCreate(String userJID)
Adds a new user to the list of JIDs that are allowed to create MUC rooms.

Parameters:
userJID - the bare JID of the new user to add to list.

removeUserAllowedToCreate

void removeUserAllowedToCreate(String userJID)
Removes a user from list of JIDs that are allowed to create MUC rooms.

Parameters:
userJID - the bare JID of the user to remove from the list.

setKickIdleUsersTimeout

void setKickIdleUsersTimeout(int timeout)
Sets the time to elapse between clearing of idle chat users. A TimerTask will be added to a Timer scheduled for repeated fixed-delay execution whose main responsibility is to kick users that have been idle for a certain time. A user is considered idle if he/she didn't send any message to any group chat room for a certain amount of time. See setUserIdleTime(int).

Parameters:
timeout - the time to elapse between clearing of idle chat users.

getKickIdleUsersTimeout

int getKickIdleUsersTimeout()
Returns the time to elapse between clearing of idle chat users. A user is considered idle if he/she didn't send any message to any group chat room for a certain amount of time. See getUserIdleTime().

Returns:
the time to elapse between clearing of idle chat users.

setUserIdleTime

void setUserIdleTime(int idle)
Sets the number of milliseconds a user must be idle before he/she gets kicked from all the rooms. By idle we mean that the user didn't send any message to any group chat room.

Parameters:
idle - the amount of time to wait before considering a user idle.

getUserIdleTime

int getUserIdleTime()
Returns the number of milliseconds a user must be idle before he/she gets kicked from all the rooms. By idle we mean that the user didn't send any message to any group chat room.

Returns:
the amount of time to wait before considering a user idle.

setLogConversationsTimeout

void setLogConversationsTimeout(int timeout)
Sets the time to elapse between logging the room conversations. A TimerTask will be added to a Timer scheduled for repeated fixed-delay execution whose main responsibility is to log queued rooms conversations. The number of queued conversations to save on each run can be configured. See setLogConversationBatchSize(int).

Parameters:
timeout - the time to elapse between logging the room conversations.

getLogConversationsTimeout

int getLogConversationsTimeout()
Returns the time to elapse between logging the room conversations. A TimerTask will be added to a Timer scheduled for repeated fixed-delay execution whose main responsibility is to log queued rooms conversations. The number of queued conversations to save on each run can be configured. See getLogConversationBatchSize().

Returns:
the time to elapse between logging the room conversations.

setLogConversationBatchSize

void setLogConversationBatchSize(int size)
Sets the number of messages to save to the database on each run of the logging process. Even though the saving of queued conversations takes place in another thread it is not recommended specifying a big number.

Parameters:
size - the number of messages to save to the database on each run of the logging process.

getLogConversationBatchSize

int getLogConversationBatchSize()
Returns the number of messages to save to the database on each run of the logging process.

Returns:
the number of messages to save to the database on each run of the logging process.

getHistoryStrategy

HistoryStrategy getHistoryStrategy()
Obtain the server-wide default message history settings.

Returns:
The message history strategy defaults for the server.

getChatRoom

MUCRoom getChatRoom(String roomName,
                    JID userjid)
                    throws NotAllowedException
Obtains a chatroom by name. A chatroom is created for that name if none exists and the user has permission. The user that asked for the chatroom will be the room's owner if the chatroom was created.

Parameters:
roomName - Name of the room to get.
userjid - The user's normal jid, not the chat nickname jid.
Returns:
The chatroom for the given name.
Throws:
NotAllowedException - If the caller doesn't have permission to create a new room.

getChatRoom

MUCRoom getChatRoom(String roomName)
Obtains a chatroom by name. If the chatroom does not exists then null will be returned.

Parameters:
roomName - Name of the room to get.
Returns:
The chatroom for the given name or null if the room does not exists.

getChatRooms

List<MUCRoom> getChatRooms()
Retuns a list with a snapshot of all the rooms in the server (i.e. persistent or not, in memory or not).

Returns:
a list with a snapshot of all the rooms.

hasChatRoom

boolean hasChatRoom(String roomName)
Returns true if the server includes a chatroom with the requested name.

Parameters:
roomName - the name of the chatroom to check.
Returns:
true if the server includes a chatroom with the requested name.

removeChatRoom

void removeChatRoom(String roomName)
Removes the room associated with the given name.

Parameters:
roomName - The room to remove.

removeUser

void removeUser(JID jabberID)
Removes a user from all chat rooms.

Parameters:
jabberID - The user's normal jid, not the chat nickname jid.

getChatUser

MUCUser getChatUser(JID userjid)
                    throws UserNotFoundException
Obtain a chat user by XMPPAddress.

Parameters:
userjid - The XMPPAddress of the user.
Returns:
The chatuser corresponding to that XMPPAddress.
Throws:
UserNotFoundException - If the user is not found and can't be auto-created.

serverBroadcast

void serverBroadcast(String msg)
                     throws UnauthorizedException
Broadcast a given message to all members of this chat room. The sender is always set to be the chatroom.

Parameters:
msg - The message to broadcast.
Throws:
UnauthorizedException

getTotalChatTime

long getTotalChatTime()
Returns the total chat time of all rooms combined.

Returns:
total chat time in milliseconds.

logConversation

void logConversation(MUCRoom room,
                     Message message,
                     JID sender)
Logs that a given message was sent to a room as part of a conversation. Every message sent to the room that is allowed to be broadcasted and that was sent either from the room itself or from an occupant will be logged.

Note: For performane reasons, the logged message won't be immediately saved. Instead we keep the logged messages in memory until the logging process saves them to the database. It's possible to configure the logging process to run every X milliseconds and also the number of messages to log on each execution.

Parameters:
room - the room that received the message.
message - the message to log as part of the conversation in the room.
sender - the real XMPPAddress of the sender (e.g. john@example.org).
See Also:
MultiUserChatServerImpl.initialize(org.jivesoftware.wildfire.XMPPServer)

messageBroadcastedTo

void messageBroadcastedTo(int numOccupants)
Notification message indicating the server that an incoming message was broadcasted to a given number of occupants.

Parameters:
numOccupants - number of occupants that received the message.

enableService

void enableService(boolean enabled)
Enables or disables the MUC service. When disabled the MUC service will disappear from the disco#items list. Moreover, service discovery features will be disabled.

Parameters:
enabled - true if the service is enabled.

isServiceEnabled

boolean isServiceEnabled()
Returns true if the MUC service is available. Use enableService(boolean) to enable or disable the service.

Returns:
true if the MUC service is available.

Wildfire 3.2.4 Javadoc

Copyright © 2003-2007 Jive Software.