2021-05-12 11:00:58
手機遊戲伺服器架設教學
手機遊戲伺服器架設怎麼弄呢?下面就跟小編一起來看一看吧。·
工具/材料
PC
操作方法
-
01
如今的手遊世界,如果沒搞個跨服賽事,都不好意思說它是一個手遊了。
說到跨服,就不得不說下匹配服了。比如一個跨服天梯賽事,需要滿足不同服的玩家能夠同屏PK。為了能夠把實力接近的玩家作為對手,我們需要一個獨立的匹配服來收集資料,然後進行房間分配。匹配服,也是跨服賽設計的基礎。
典型的匹配服通訊層我們可以採用http,也可以採用socket。本文將採用http作為遊戲服與匹配服的通訊層。選擇http方式,我們可以搭個tomcat服務,非常方便。當然,如果不使用tomcat的話,我們也可以使用mina或者netty本身的http服務。
設計思路也非常簡單,有點像遊戲服的業務處理器。我們需要做到,對於不同的請求,我們都繫結一個方法與之對應。而對於資料的編解碼,由於匹配服的通訊資料一般都比較短,我們直接用json進行序列化即可。
下面,開始我們的編碼。 -
02
搭建mina的http服務
在前面遊戲後臺設計中,我們已經看到如何使用mina搭建http服務了。 -
03
訊息通訊
在遊戲服,我們發出一條http請求。匹配服為了將請求分發到對應的處理器,我們需要為每一條訊息作一個標記。最簡單的,可以使用請求訊息的類名。所以,我們必須把業務簽名和引數都融合到url裡面去。也就是說,一個有效的url可能是這樣:
http://localhost:8899?service=MReqLadderApplyMessage¶m={"playerId":0,"score":0,"power":0}
為了能區別遊戲服和匹配服的訊息型別,我們匹配服的訊息,都加一個M(Match)字首,那麼請求協定就MReq,響應協定就是MRes了。
對於遊戲服來說,發出的請求屬於Message的子類,返回的訊息也是Message的子類。底層幫我們實現了訊息的編解碼。我們可以看下程式碼實現。 -
04
業務處理器
我們依然使用 @Controller註解來標識一個模組處理器,使用@RequestMapper註解來標記業務處理方法。不同的是,在遊戲服我們每個訊息的元資訊都帶有一個模組號和子型別號。在匹配服,我們就不這裡處理了。因為匹配服的業務比較少。我們直接用訊息類的名稱作為業務簽名即可。
在業務分發器,我們儲存每一個方法簽名,與對應的方法處理器。 -
05
匹配服在收到一個http請求,通過引數解析得到對應的業務簽名,同時通過json反序列化得到請求訊息的引數。將訊息分發到對應的業務處理器。程式碼如下:
一個完整的業務處理器,程式碼如下 (可以看出,跟遊戲服是非常類似的):
範例程式碼
啟動匹配服伺服器(MatchStartup.java)
再執行遊戲服的單元測試 - End
特別提示
如果看不懂,請教專業人員。
相關文章
-
7+2強化供電!599元梅捷SY-狂龍H510M圖賞
除了廣為人知的Z590和B560之外,英特爾還發布了入門級的H510晶片組,也是上一代H410晶片組的升級版。 在相容性方面,H510晶片組與Z590晶片組和B560晶片組沒有什麼區別,都可以相容1
2021-05-10 19:00:28
-
支援5333高頻記憶體!技嘉小雕PRO B560M主機板圖賞
Intel第十一代酷睿已經上市,新架構帶來了巨大的IPC提升幅度,同時,Intel還開放了B560/H570主機板的記憶體超頻功能,這使得主流玩家也可以輕鬆享受高頻記憶體帶來的流暢遊戲體驗。
2021-05-09 16:00:04
-
24K純金!微星MEG Z590 ACE GOLD EDITION戰神至臻圖賞
顯示卡、散熱器、風扇都能玩RGB,機箱中,主機板幾乎是最不起眼的存在。 而近日,微星推出了一款亮眼的主機板,首次用上了24K純金設計,它就是MEG Z590 ACE戰神至臻,一起來瞧瞧。 MEG
2021-05-07 22:00:14