首先我簡單介紹下Leaf服務器,下面這段描述是我摘自github官方README說明:
Leaf 游戲服務器框架簡介
Leaf 是一個由 Go 語言(golang)編寫的開發效率和執行效率并重的開源游戲服務器框架。Leaf 適用于各類游戲服務器的開發,包括 H5(HTML5)游戲服務器。
Leaf 的關注點:
- 良好的使用體驗。Leaf 總是盡可能的提供簡潔和易用的接口,盡可能的提升開發的效率
- 穩定性。Leaf 總是盡可能的恢復運行過程中的錯誤,避免崩潰
- 多核支持。Leaf 通過模塊機制和 leaf/go 盡可能的利用多核資源,同時又盡量避免各種副作用
- 模塊機制。
Leaf 的模塊機制
一個 Leaf 開發的游戲服務器由多個模塊組成(例如 LeafServer),模塊有以下特點:
- 每個模塊運行在一個單獨的 goroutine 中
- 模塊間通過一套輕量的 RPC 機制通訊(leaf/chanrpc)
Leaf 不建議在游戲服務器中設計過多的模塊。
游戲服務器在啟動時進行模塊的注冊,例如:
leaf.Run(game.Module,gate.Module,login.Module, )
這里按順序注冊了 game、gate、login 三個模塊。每