Package org.atmosphere.room
Interface Room
- All Known Implementing Classes:
DefaultRoom
public interface Room
A named group of
AtmosphereResource connections. Rooms provide
a higher-level abstraction over Broadcaster
for managing groups of connected clients with presence tracking.
RoomManager rooms = RoomManager.create(framework);
Room lobby = rooms.room("lobby");
lobby.join(resource);
lobby.broadcast("Hello everyone!");
lobby.onPresence(event -> log.info(event.member() + " " + event.type()));
- Since:
- 4.0
-
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.default RoomenableHistory(int maxMessages) Enable message history (replay) for this room.booleanbooleanisEmpty()join(AtmosphereResource resource) Add a resource to this room.default Roomjoin(AtmosphereResource resource, RoomMember member) Add a resource to this room with application-level member info.default RoomjoinVirtual(VirtualRoomMember member) Add a virtual (non-connection) member to this room.leave(AtmosphereResource resource) Remove a resource from this room.default RoomleaveVirtual(VirtualRoomMember member) Remove a virtual member from this room.default Map<String, RoomMember> default Optional<RoomMember> 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()default Set<VirtualRoomMember>
-
Method Details
-
name
String name()- Returns:
- the room name (unique identifier)
-
join
Add a resource to this room.- Parameters:
resource- the resource to add- Returns:
- this room for chaining
-
leave
Remove a resource from this room.- Parameters:
resource- the resource to remove- Returns:
- this room for chaining
-
broadcast
Broadcast a message to all members of this room.- Parameters:
message- the message to broadcast- Returns:
- a future that completes when the broadcast is delivered
-
broadcast
Broadcast a message to all members except the sender.- Parameters:
message- the message to broadcastsender- the resource to exclude- Returns:
- a future that completes when the broadcast is delivered
-
sendTo
Send a direct message to a specific member by UUID.- Parameters:
message- the message to senduuid- the target resource's UUID- Returns:
- a future that completes when the message is delivered
-
members
Set<AtmosphereResource> members()- Returns:
- an unmodifiable set of all current members
-
size
int size()- Returns:
- the number of members in this room
-
isEmpty
boolean isEmpty()- Returns:
- true if this room has no members
-
contains
Check if a resource is a member of this room.- Parameters:
resource- the resource to check- Returns:
- true if the resource is in this room
-
onPresence
Register a presence listener for join/leave events.- Parameters:
listener- the presence event listener- Returns:
- this room for chaining
-
join
Add a resource to this room with application-level member info.- Parameters:
resource- the resource to addmember- the member identity and metadata- Returns:
- this room for chaining
-
memberInfo
- Returns:
- a map of resource UUID to
RoomMemberfor all members that joined with member info
-
memberOf
Retrieve theRoomMemberassociated with a resource, if present.- Parameters:
resource- the resource to look up- Returns:
- the member info, or empty if the resource has none
-
joinVirtual
Add 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.- Parameters:
member- the virtual member (e.g., an AI agent)- Returns:
- this room for chaining
- Since:
- 4.0
-
leaveVirtual
Remove a virtual member from this room.- Parameters:
member- the virtual member to remove- Returns:
- this room for chaining
- Since:
- 4.0
-
virtualMembers
- Returns:
- an unmodifiable set of all virtual members in this room
- Since:
- 4.0
-
enableHistory
Enable message history (replay) for this room. New joiners will receive up tomaxMessagescached messages.- Parameters:
maxMessages- the maximum number of messages to cache- Returns:
- this room for chaining
-
destroy
void destroy()Destroy this room, removing all members and releasing resources. -
isDestroyed
boolean isDestroyed()- Returns:
- true if this room has been destroyed
-