Package org.atmosphere.room
Class DefaultRoom
java.lang.Object
org.atmosphere.room.DefaultRoom
- All Implemented Interfaces:
Room
Default
Room implementation backed by a Broadcaster.
Each room wraps a dedicated Broadcaster identified by the room name.
Presence events are tracked via a BroadcasterListenerAdapter
that listens for resource additions and removals.
- Since:
- 4.0
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultRoom(String name, Broadcaster broadcaster) Create a room backed by the given broadcaster. -
Method Summary
Modifier and TypeMethodDescriptionBroadcast a message to all members of this room.broadcast(Object message, AtmosphereResource sender) Broadcast a message to all members except the sender.booleancontains(AtmosphereResource resource) Check if a resource is a member of this room.voiddestroy()Destroy this room, removing all members and releasing resources.enableHistory(int maxMessages) Enable message history (replay) for this room.intbooleanbooleanisEmpty()join(AtmosphereResource resource) Add a resource to this room.join(AtmosphereResource resource, RoomMember member) Add a resource to this room with application-level member info.joinVirtual(VirtualRoomMember member) Add a virtual (non-connection) member to this room.leave(AtmosphereResource resource) Remove a resource from this room.leaveVirtual(VirtualRoomMember member) Remove a virtual member from this room.memberOf(AtmosphereResource resource) Retrieve theRoomMemberassociated with a resource, if present.members()name()onPresence(Consumer<PresenceEvent> listener) Register a presence listener for join/leave events.Send a direct message to a specific member by UUID.intsize()
-
Constructor Details
-
DefaultRoom
Create a room backed by the given broadcaster.- Parameters:
name- the room namebroadcaster- the backing broadcaster
-
-
Method Details
-
name
-
join
Description copied from interface:RoomAdd a resource to this room. -
join
Description copied from interface:RoomAdd a resource to this room with application-level member info. -
leave
Description copied from interface:RoomRemove a resource from this room. -
broadcast
Description copied from interface:RoomBroadcast a message to all members of this room. -
broadcast
Description copied from interface:RoomBroadcast a message to all members except the sender. -
sendTo
Description copied from interface:RoomSend a direct message to a specific member by UUID. -
members
-
size
public int size() -
isEmpty
public boolean isEmpty() -
contains
Description copied from interface:RoomCheck if a resource is a member of this room. -
onPresence
Description copied from interface:RoomRegister a presence listener for join/leave events.- Specified by:
onPresencein interfaceRoom- Parameters:
listener- the presence event listener- Returns:
- this room for chaining
-
memberInfo
- Specified by:
memberInfoin interfaceRoom- Returns:
- a map of resource UUID to
RoomMemberfor all members that joined with member info
-
memberOf
Description copied from interface:RoomRetrieve theRoomMemberassociated with a resource, if present. -
enableHistory
Description copied from interface:RoomEnable message history (replay) for this room. New joiners will receive up tomaxMessagescached messages.- Specified by:
enableHistoryin interfaceRoom- Parameters:
maxMessages- the maximum number of messages to cache- Returns:
- this room for chaining
-
historySize
public int historySize()- Returns:
- the configured history size, or 0 if history is disabled
-
joinVirtual
Description copied from interface:RoomAdd a virtual (non-connection) member to this room. Virtual members receive broadcasts viaVirtualRoomMember.onMessage(org.atmosphere.room.Room, java.lang.String, java.lang.Object)and can respond by broadcasting back into the room.- Specified by:
joinVirtualin interfaceRoom- Parameters:
member- the virtual member (e.g., an AI agent)- Returns:
- this room for chaining
-
leaveVirtual
Description copied from interface:RoomRemove a virtual member from this room.- Specified by:
leaveVirtualin interfaceRoom- Parameters:
member- the virtual member to remove- Returns:
- this room for chaining
-
virtualMembers
- Specified by:
virtualMembersin interfaceRoom- Returns:
- an unmodifiable set of all virtual members in this room
-
destroy
public void destroy()Description copied from interface:RoomDestroy this room, removing all members and releasing resources. -
isDestroyed
public boolean isDestroyed()- Specified by:
isDestroyedin interfaceRoom- Returns:
- true if this room has been destroyed
-
broadcaster
- Returns:
- the underlying broadcaster for advanced use cases
-