██╗ █████╗ ███╗ ███╗██████╗ ██║██╔══██╗████╗ ████║██╔══██╗ ██║███████║██╔████╔██║██████╔╝ ██ ██║██╔══██║██║╚██╔╝██║██╔══██╗ ╚█████╔╝██║ ██║██║ ╚═╝ ██║██║ ██║ ╚════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
Chat
Engaged via websocket
+-------------------+ | JamrResource.py | +-+-----------------+ | +--------------+---+ | JamrService.py | +--------------+---+ | +---+-------+ |JamrDao.py | +-------+---+ | +---------+-------+ | DataStore.py | +-----------------+
ADD_USER source_user: {user} INVITE source_user: {user} dest_user: {user} CREATE source_user: {user} LEAVE source_user: {user} room: {room} MESSAGE source_user: {user} room: {room} message: text USERS users: List{user}
Pos.py lon: {double} lat: {double} User.py pos: {pos} inst: {string} genr: {string} uid: {universally unique id} Room.py users: list{user} uid: {universally unique id}
- Guitar
- Bass
- Drums
{"lon":"1.1","lat":"1.2"}
{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}
{"users":[{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}],"uid":1}
{"kind":"ADD_USER","model":{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}}
{"kind":"INVITE","model":{"src_user":{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"},"dst_user":{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}}}
{"kind":"CREATE","model":{"users":[{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}],"uid":1}}
{"kind":"LEAVE","model":{"src_user":{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"},"room":{"users":[{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}],"uid":1}}}
{"kind":"MESSAGE","model":{"src_user":{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"},"room":{"users":[{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}],"uid":1}, "msg":"text"}}
{"kind":"USERS","model":[{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}]}
posBlob = '{"lon":"1.1","lat":"1.2"}'
userBlob = '{"pos":{"lon":"1.0","lat":"1.1"}, "inst":"guitar", "genr":"rock", "uid":"1"}'
roomBlob = '{"users":['+userBlob+'],"uid":1}'
addUserBlob = '{"kind":"ADD_USER","model":'+userBlob+'}'
inviteBlob = '{"kind":"INVITE","model":{"src_user":'+userBlob+',"dst_user":'+userBlob+'}}'
createBlob = '{"kind":"CREATE","model":'+roomBlob+'}'
leaveBlob = '{"kind":"LEAVE","model":{"src_user":'+userBlob+',"room":'+roomBlob+'}}'
msgBlob = '{"kind":"MESSAGE","model":{"src_user":'+userBlob+',"room":'+roomBlob+', "msg":"text"}}'
usersBlob = '{"kind":"USERS","model":['+userBlob+']}'