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 Details

    • name

      String name()
      Returns:
      the room name (unique identifier)
    • join

      Room join(AtmosphereResource resource)
      Add a resource to this room.
      Parameters:
      resource - the resource to add
      Returns:
      this room for chaining
    • leave

      Room leave(AtmosphereResource resource)
      Remove a resource from this room.
      Parameters:
      resource - the resource to remove
      Returns:
      this room for chaining
    • broadcast

      Future<Object> broadcast(Object message)
      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

      Future<Object> broadcast(Object message, AtmosphereResource sender)
      Broadcast a message to all members except the sender.
      Parameters:
      message - the message to broadcast
      sender - the resource to exclude
      Returns:
      a future that completes when the broadcast is delivered
    • sendTo

      Future<Object> sendTo(Object message, String uuid)
      Send a direct message to a specific member by UUID.
      Parameters:
      message - the message to send
      uuid - the target resource's UUID
      Returns:
      a future that completes when the message is delivered
    • 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

      boolean contains(AtmosphereResource resource)
      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

      Room onPresence(Consumer<PresenceEvent> listener)
      Register a presence listener for join/leave events.
      Parameters:
      listener - the presence event listener
      Returns:
      this room for chaining
    • join

      default Room join(AtmosphereResource resource, RoomMember member)
      Add a resource to this room with application-level member info.
      Parameters:
      resource - the resource to add
      member - the member identity and metadata
      Returns:
      this room for chaining
    • memberInfo

      default Map<String,RoomMember> memberInfo()
      Returns:
      a map of resource UUID to RoomMember for all members that joined with member info
    • memberOf

      default Optional<RoomMember> memberOf(AtmosphereResource resource)
      Retrieve the RoomMember associated with a resource, if present.
      Parameters:
      resource - the resource to look up
      Returns:
      the member info, or empty if the resource has none
    • joinVirtual

      default Room joinVirtual(VirtualRoomMember member)
      Add a virtual (non-connection) member to this room. Virtual members receive broadcasts via VirtualRoomMember.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

      default Room leaveVirtual(VirtualRoomMember member)
      Remove a virtual member from this room.
      Parameters:
      member - the virtual member to remove
      Returns:
      this room for chaining
      Since:
      4.0
    • virtualMembers

      default Set<VirtualRoomMember> virtualMembers()
      Returns:
      an unmodifiable set of all virtual members in this room
      Since:
      4.0
    • enableHistory

      default Room enableHistory(int maxMessages)
      Enable message history (replay) for this room. New joiners will receive up to maxMessages cached 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