Realtime Store
Shared key/value store synchronized across participants.
observe needs a joined room: called before the room is joined or while it is reconnecting it adds no observer and reports the reason through RoomEventListener.onError — see Room for the codes. setValue and getValue throw instead. stopObserving is local and always runs.