關(guān)于網(wǎng)游服務(wù)器的分類和布局的問(wèn)題是在網(wǎng)絡(luò)游戲中比較關(guān)鍵的部分, 首先我們討論網(wǎng)絡(luò)游戲服務(wù)器的分類問(wèn)題: 一般情況下游戲服務(wù)器分為: 登陸服務(wù)器, 網(wǎng)關(guān)服務(wù)器, 游戲服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器四類, 有的服務(wù)器可能是多臺(tái)并存的,如游戲服務(wù)器, 其中游戲服務(wù)器包括: 地圖服務(wù)器和邏輯服務(wù)器.
下面這個(gè)圖描述了網(wǎng)關(guān)服務(wù)器和其他服務(wù)器之間的關(guān)系:

網(wǎng)關(guān)服務(wù)器的功能是將: 游戲服務(wù)器, 客戶端和數(shù)據(jù)庫(kù)服務(wù)器之間的消息進(jìn)行轉(zhuǎn)發(fā), 所以它負(fù)責(zé)管理客戶端的連接和服務(wù)端的連接, 并轉(zhuǎn)發(fā)他們之間的消息, 同時(shí)他還連接到數(shù)據(jù)庫(kù)服務(wù)器上,等需要數(shù)據(jù)讀取是對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,并轉(zhuǎn)發(fā)給相應(yīng)的請(qǐng)求者. (其實(shí)在對(duì)數(shù)據(jù)庫(kù)的連接這個(gè)問(wèn)題上,有游戲服務(wù)器來(lái)連接的,網(wǎng)關(guān)服務(wù)只負(fù)責(zé)轉(zhuǎn)發(fā)和簡(jiǎn)單的邏輯處理)。
我們現(xiàn)在來(lái)討論下網(wǎng)關(guān)服務(wù)器是怎么實(shí)現(xiàn)的:網(wǎng)關(guān)服務(wù)器要管理兩個(gè)事情,一個(gè)是游戲服務(wù)器的連接,另一個(gè)玩家的連接。其實(shí)對(duì)于網(wǎng)關(guān)服務(wù)器而言,這兩個(gè)種類型的連接差別,并不是很大,可以用一個(gè)網(wǎng)路模型來(lái)處理收到的消息,并將其轉(zhuǎn)發(fā)給相應(yīng)的接受者。
游戲服務(wù)器中的地圖服務(wù)器:地圖服務(wù)器相對(duì)于網(wǎng)關(guān)服務(wù)器而言,它更像是一個(gè)客戶端,它在收到消息的時(shí)候處理消息,并將消息結(jié)果返回給網(wǎng)關(guān),網(wǎng)關(guān)把消息轉(zhuǎn)給相應(yīng)的連接。只是說(shuō)因?yàn)榈貓D服務(wù)器相對(duì)來(lái)說(shuō)是處理那些長(zhǎng)時(shí)間連接,需要不斷處理的邏輯的,如用戶的移動(dòng),狀態(tài),補(bǔ)給等,需要實(shí)時(shí)的消息處理。
邏輯服務(wù)器的功能是實(shí)現(xiàn)如打怪,組隊(duì)等一些,不經(jīng)常交互的邏輯的。其實(shí)對(duì)于一組游戲服務(wù)器而言,大量的聊天信息也是很消耗系統(tǒng)資源的,有時(shí)候要單獨(dú)建立一個(gè)聊天服務(wù)器。
數(shù)據(jù)庫(kù)服務(wù)器基本上是存放數(shù)據(jù)庫(kù)的,游戲服務(wù)器,邏輯服務(wù)器,在需要是讀取數(shù)據(jù),進(jìn)行邏輯處理。