@startuml actor requestor actor sock_cli == Get Authen Info == requestor o-> fcgi : fetch authorize info and acc_addr activate fcgi fcgi --> room_factory : build all rooms activate room_factory room_factory -> room_svr : invite until build room activate room_svr room_svr -> room_factory deactivate room_svr room_factory --> fcgi deactivate room_factory fcgi -->o requestor : resp authorize info deactivate fcgi == Get Rooms == requestor o-> fcgi : list_rooms activate fcgi fcgi ->o requestor : rooms deactivate fcgi == Get Unreaded Messages == requestor o-> fcgi : unread msgs,roomid activate fcgi fcgi ->o requestor : unread msgs deactivate fcgi == invite == fcgi o-> room_factory : invite(roomid,inviter,invitee) activate room_factory room_factory -> room_svr : invite(roomid,inviter,invitee) activate room_svr room_svr -> room_svr : check inviter room_svr -> room_svr : add invitee room_svr -> room_factory : resp invite result deactivate room_svr room_factory -> room_factory : gen token(userid,roomid) room_factory ->o fcgi : resp token deactivate room_factory == Login == collections access sock_cli o-> access : login with authorize activate access access -> access : decode author info access ->o sock_cli : author success deactivate access @enduml