上篇文章我們講解了攻擊消息處理存在的問(wèn)題和解決問(wèn)題的方式:消息處理串行化,那這篇文章我們來(lái)使用這一思路修改一下我們的代碼核心思路:把所有類型的消息處理放在同一個(gè)線程中執(zhí)行串行...
上篇文章我們講解了攻擊消息處理存在的問(wèn)題和解決問(wèn)題的方式:消息處理串行化,那這篇文章我們來(lái)使用這一思路修改一下我們的代碼核心思路:把所有類型的消息處理放在同一個(gè)線程中執(zhí)行串行...
上一篇文章的最后我們提到了攻擊消息的處理還是有些問(wèn)題,其實(shí)應(yīng)該還是比較嚴(yán)重的問(wèn)題,我們來(lái)演示一下。在攻擊處理器:UserAttkCmdHandler中添加一條日志打印并重啟服...
之前為了測(cè)試重構(gòu)的代碼添加了攻擊消息,現(xiàn)在再來(lái)重新設(shè)計(jì)一下攻擊消息:UserAttkCmdHandler,使代碼簡(jiǎn)潔一下,并且添加處理死亡消息,最后對(duì)攻擊消息的一個(gè)小BUG做...
本章我們需要重新設(shè)計(jì)移動(dòng)消息,首先觀察一下之前移動(dòng)可能存在的問(wèn)題 移動(dòng)消息存在的問(wèn)題: 如果現(xiàn)在有兩個(gè)角色1和2,當(dāng)角色1從A移動(dòng)到B時(shí),角色2登錄,是不會(huì)顯示角色1的移動(dòng)效...
同上一篇文章類似,對(duì)于GameMsgRecognizer我們也需要用同樣的方式重構(gòu),直接上代碼 重構(gòu)GameMsgRecognizer 1.修改GameMsgRecogniz...
之前兩篇文章我們使用工廠的設(shè)計(jì)模式重構(gòu)了我們的代碼,極大的簡(jiǎn)化了我們的業(yè)務(wù)代碼,但是我們會(huì)發(fā)現(xiàn),當(dāng)我們?cè)黾右粋€(gè)消息種類時(shí),我們需要添加新的handler類,并且還需要修改初始...
上一篇文章,我們重構(gòu)了游戲的消息處理器,現(xiàn)在我們?yōu)榱吮3执a的整潔,重構(gòu)編碼器和解碼器,大概思路與消息處理器的重構(gòu)思路類似 消息編解碼器的重構(gòu) 1.增加消息識(shí)別器class:...
一、將用戶字典_userMap和信道組_channelGroup進(jìn)行簡(jiǎn)單封裝 1.封裝用戶字典需要注意的是:在hashMap在并發(fā)環(huán)境下可能出現(xiàn)的問(wèn)題,這里使用Concurr...
上一篇文章我們使用Netty搭建了最簡(jiǎn)單的游戲服務(wù)器,并且接收到了前端的信息,那這些信息如何處理呢,本篇文章我們會(huì)使用ProtoBuf來(lái)處理這些信息。 消息協(xié)議 與使用htt...