处理游戏房间的问题,房间都是在unique存储的,房间开完准备好,通知到一个game服,后面客户端就是直接往game进行游戏
图中黑色的线表示的是客户端的Session,红色的是服务端的Session
整个游戏开房间的完整步骤如下
创建房间消息,发UpCreatGameRoomToUnique收CreateGameRoomToClient,消息流向:客户端→网关→唯一服(处理服)→客户端
加入房间消息,发UpJoinRoomToUnique收DownJoinRoomToClient,消息流向:客户端→网关→唯一服(处理服)→客户端
游戏准备消息,发UpGameReadToUnique收DownGameReadyToClient,消息流向:客户端→网关→唯一服(处理服)→客户端
通知游戏服创建房间,目的是随机挑一个游戏服来进行游戏,最终唯一服拿到一个游戏服ID,发UniqueCreateRoomToGame收GameCreateRoomToUnique 消息流向:唯一服→游戏服→唯一服
拿到游戏服ID后,通知网关服,发CreatRoomSucceedToAgent 消息流向:唯一服→网关
网关服拿到游戏服ID,建立到游戏服的连接,发JoinRoomToGame收NoticeGameStart,消息流向:网关→游戏服→网关→客户端
离开房间时,game服会关闭从agent服来的Session