1. 程式人生 > >《棋牌遊戲服務器》玩家入桌流程設計

《棋牌遊戲服務器》玩家入桌流程設計

所在 直接 客戶端 內網通信 網通 因此 內網 image oom


1、入桌流程 技術分享圖片

技術分享圖片

整個流程如上圖所示,裏面的關鍵點在於,網關會解析JoinTableResponse消息,然後記住這個用戶(從網關角度,也可以說這個socket連接)當前所在的遊戲服、房間、桌子。

這樣,當遊戲服往整個桌子廣播消息的時候,可以告訴網關這個消息是給哪個桌子的,網關通過這個信息再把消息廣播給用戶,提高內網通信效率。

2、離桌流程

和上面的流程大同小異,對應的消息是LeaveTableRequest和LeaveTableResponse;網關同樣解析LeaveTableResponse清除用戶位置信息。

3、斷線重連

斷線於入桌流程也是類似的,有兩點不同:

1)客戶端發送的還是JoinTableRequest消息,只是不帶上room或table參數;

2)網關如果發現用戶沒在遊戲場,直接返回錯誤;否則的話,就和入桌流程類似。

4、換桌流程

技術分享圖片

換桌的本質是先離桌,再入桌,因此客戶端還是發送LeaveTableRequest請求,只不過通過一個消息字段type來標誌:這是一次換桌;

遊戲服完成換桌以後,返回的LeaveTableResponse響應裏面也包含這個type標誌;網關解析這個消息之後,先完成離桌的邏輯,再代替客戶端發起一個入桌請求,後面的流程就與入桌一樣了。

《棋牌遊戲服務器》玩家入桌流程設計