前天寫章節(jié)信息和星級(jí)寶箱的相關(guān)功能的時(shí)候?qū)懥艘粋€(gè)比較大的bug,記錄如下,以避免下次再犯同樣的錯(cuò)誤猎塞、
1. 錯(cuò)誤原因
相關(guān)Handler函數(shù)沒寫返回值
2. ** 錯(cuò)誤解析 **
我們服務(wù)器對(duì)數(shù)據(jù)包處理過程大概是這樣的,首先客戶端發(fā)過來的包捣郊,我們服務(wù)器會(huì)對(duì)這個(gè)包進(jìn)行解析非剃,取出PacketID,然后把剩下的包的內(nèi)容 作為參數(shù),傳遞給Execute函數(shù)宙暇,該函數(shù)調(diào)用具體的Handler函數(shù)處理相關(guān)的具體邏輯输枯,handler函數(shù)有返回值,然后根據(jù)handler的具體的返回值占贫,進(jìn)行具體的處理,如果是PACKET_EXE_ERROR 則刪除改包桃熄,斷開跟該客戶端的鏈接,如果是PACKET_EXE_CONTINUE 則刪除當(dāng)前這個(gè)包型奥,繼續(xù)下一個(gè)循環(huán)瞳收,如果是PACKET_EXE_NOT_REMOVE一般是用于world的包,一般都不會(huì)立刻刪掉厢汹,等到調(diào)用完成則刪除螟深。
3. ** 解決辦法 **
很簡(jiǎn)單加上返回值唄
4. ** 反思 **
還是不夠認(rèn)真,比較浮躁烫葬,這個(gè)毛病得改