? ? ? ?1.轉發
? ? ? ?轉發客戶端和服務器間的消息,網關將場景、會話、數據、名字、平臺等服務器的數據轉發給客戶端,接收客戶端的數據,把消息轉發給相應的服務器。很多時候,我們需要將消息發給所有的用戶,如果讓會話服務器來執行這個功能,如果這個時候服務器很負載很大,有2萬人在線,那么就得發兩萬條消息給客戶端,這個肯定是不允許的,所有我們將需要轉發的消息給網關,如果每個 網關掛了4000人,那么網關就將這條消息發給每個用戶了。當然了,在游戲設計時,特別是策劃在活動制作時,必須盡量避免群發消息的功能。即使要發,我們將這2萬人分組,然后分時分組發送。一般情況下,網關與場景是多對多的關系,和其他服務器都是1對多的關系
? ? ? ?2.心跳
網關定時發送心跳給連接在這個網關上的所有客戶端,保證客戶端與網關的連接,如果某個客戶端掉線了,那么網關就通知各個服務器去做玩家的下線處理
? ? ? ?3.負載均衡
? ? ? ?多網關來支持平衡游戲負載,當然負責負載均衡的模塊可以放在一個管理所有服務器的Super服務器,
? ? ? ?4.賬號管理
? ? ? 玩家刪除賬號,更改名字等操作,只需要登錄到網關,然后與數據服務器交互就行了,然后還有一個處理就是,對玩家的名字/聊天的消息進行關鍵詞過濾
? ? ? 5.維護玩家登陸信息
? ? ? 玩家發來登陸操作時,去數據庫服務器尋找賬號,匹配密碼,然后連接到場景服務器上。很多公司都使用了統一的賬號平臺來管理所有的游戲賬號,這時,玩家登陸游戲時,發一條登陸消息,先登陸到平臺,平臺驗證賬號的正確性,然后去相應的游戲服務器,分配一個網關,把這個網關的ip/端口這些發給客戶端,客戶端去連接這個網關,當然中間的規則,就自己設定了。
? ? ? 現在做的是端游,等這邊結束了,希望能嘗試做一個頁游。
? ? ? 明天來寫會話服務器。