bug修復日記------玩家第一次登陸的信息沒有存儲

結構介紹:

         最近在寫遊戲中社交相關的邏輯處理。整體思路架構如下:

         當玩家登錄遊戲,去數據庫中查找有沒有玩家的信息,如果有,那麼就取出來,放在內存中,如果沒有,就新建一個玩家信息。

         當玩家登出遊戲的時候,把玩家的信息從內存中寫入數據庫中

現場日記:

         今天在做單元測試的時候,發現一個bug,當玩家第一次登錄遊戲,然後登出之後,玩家的信息竟然沒有存到數據庫裏。

         當玩家第二次登錄的時候,再登出遊戲,竟然存到數據庫裏了。

分析過程:

         在知曉這個bug之後,仔細打印從玩家登錄到登出過程中運行的每一個函數。經過一翻查找,發現玩家在登出遊戲的時候,玩家的信息

         往數據庫裏存儲的時候報錯,並且錯誤被劫持。

         緊接着,開始打印錯誤日誌,發現當玩家的信息往數據庫裏面寫入的時候,有一個信息從內存中讀取失敗。

         然後分析這個信息,發現了之前思維的一個漏洞:

         之前的想法是當玩家第一次登錄的時候,先校驗用戶名和密碼,如果不存在用戶,那麼就會新建一個。這時候,應該接着新建一個初始

         的玩家信息,但是之前沒有執行這一步。所以導致玩家的信息一直都沒有,自然就寫不入數據庫裏。

最終解決方案:

         在玩家第一次登入的時候,初始化玩家信息,並存入數據庫中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章