最近一陣子沒有更新Egret客戶端的博客。這裏要解釋一下,是由於最近在忙着重寫服務器。前端
爲何說是重寫呢?以前封裝了一個websocket的中間件,已經能夠實現基本的ws通訊了。可是最近和遊戲那邊的同事交流中發現以前對遊戲服務器開發的認知錯誤。程序員
錯誤有如下幾點web
瞭解到這些以後,我從新設計了一下服務器的「架構」 ,或許算不上架構,我就是怎麼簡單怎麼搞。數據庫
這幾天我作了如下幾點:緩存
差很少就是這些,看起來很少,可是對於第一次摸索着寫遊戲服務器的人來講,仍是很費時間的。服務器
最近收穫:發現遊戲服務器邏輯基本都是單線程(第一次以爲CPU性能這麼強勁。。),數據庫查詢,文件操做等耗時的內容都是在異步線程處理。處理完成後,不能再異步線程操做主循環的數據。必須把查詢處理的數據拋給主循環的隊列,而後由主循環的線程來處理。通常這樣的才能保證遊戲服務器數據不錯亂和性能兼顧。websocket
網上關於遊戲服務器開發的具體細節的文章太少了。感受遊戲服務器開發的程序員都不怎麼寫博客啊。。。架構
最後感謝坐我隔壁位的隔壁的東北老鐵。個人每一個問題都很仔細的給我作了解答,還給我翻出C++的代碼看(雖然我看不大懂C++)。。。一段時間的交流下來,我如今口頭禪都變成了:老鐵,沒毛病,雙擊666。。異步
最後東北老鐵給我說其實快手的那種老鐵666都是誇張了。。。socket
好了,就這樣,服務器代碼暫時不發出來,由於我發現還有不少完善的地方。後面能完成的跑出一個鬥地主聯網的遊戲以後,我會發出來的。
最後但願有大兄弟能指出個人問題。
老鐵,沒毛病