《棋牌游戏服务器》玩家入桌流程设计
1、入桌流程
整个流程如上图所示,里面的关键点在于,网关会解析JoinTableResponse消息,然后记住这个用户(从网关角度,也可以说这个socket连接)当前所在的游戏服、房间、桌子。
这样,当游戏服往整个桌子广播消息的时候,可以告诉网关这个消息是给哪个桌子的,网关通过这个信息再把消息广播给用户,提高内网通信效率。
2、离桌流程
和上面的流程大同小异,对应的消息是LeaveTableRequest和LeaveTableResponse;网关同样解析LeaveTableResponse清除用户位置信息。
3、断线重连
断线于入桌流程也是类似的,有两点不同:
1)客户端发送的还是JoinTableRequest消息,只是不带上room或table参数;
2)网关如果发现用户没在游戏场,直接返回错误;否则的话,就和入桌流程类似。
4、换桌流程
换桌的本质是先离桌,再入桌,因此客户端还是发送LeaveTableRequest请求,只不过通过一个消息字段type来标志:这是一次换桌;
游戏服完成换桌以后,返回的LeaveTableResponse响应里面也包含这个type标志;网关解析这个消息之后,先完成离桌的逻辑,再代替客户端发起一个入桌请求,后面的流程就与入桌一样了。