Package org.atmosphere.room.protocol
Class RoomProtocolCodec
java.lang.Object
org.atmosphere.room.protocol.RoomProtocolCodec
JSON encoder/decoder for the room protocol, using
org.json
(already a dependency of atmosphere-runtime via SimpleRestInterceptor).
Wire format (client → server)
{ "type": "join", "room": "lobby", "memberId": "alice", "metadata": { "avatar": "..." } }
{ "type": "leave", "room": "lobby" }
{ "type": "broadcast", "room": "lobby", "data": "hello" }
{ "type": "direct", "room": "lobby", "targetId": "bob", "data": "hi bob" }
Wire format (server → client)
{ "type": "join_ack", "room": "lobby", "members": [...] }
{ "type": "presence", "room": "lobby", "action": "join|leave", "memberId": "alice", "metadata": {...} }
{ "type": "message", "room": "lobby", "from": "alice", "data": "hello" }
{ "type": "error", "room": "lobby", "data": "Unauthorized" }
- Since:
- 4.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic RoomProtocolMessageDecode a JSON string into a protocol message.static StringencodeError(String room, String message) Encode an error response.static StringencodeJoinAck(String room, Collection<RoomMember> members) Encode a join acknowledgement with the current member list.static StringencodeMessage(String room, String fromMemberId, Object data) Encode a room message for delivery to clients.static StringencodePresence(String room, String action, RoomMember member) Encode a presence event (join or leave) for broadcast to other members.static StringencodeTyping(String room, String memberId, boolean typing) Encode a typing indicator for broadcast to other room members.
-
Method Details
-
decode
Decode a JSON string into a protocol message.- Parameters:
json- the raw JSON string- Returns:
- the decoded message
- Throws:
IllegalArgumentException- if the JSON is malformed or has an unknown type
-
encodeJoinAck
Encode a join acknowledgement with the current member list. -
encodePresence
Encode a presence event (join or leave) for broadcast to other members. -
encodeMessage
Encode a room message for delivery to clients. -
encodeError
Encode an error response. -
encodeTyping
Encode a typing indicator for broadcast to other room members.
-