溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leaf框架介紹

發布時間:2020-06-17 13:55:27 來源:億速云 閱讀:386 作者:鴿子 欄目:編程語言

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 三個模塊。每個模塊都需要實現接口:

type Module interface {OnInit()OnDestroy()Run(closeSig chan bool)
}

Leaf 首先會在同一個 goroutine 中按模塊注冊順序執行模塊的 OnInit 方法,等到所有模塊 OnInit 方法執行完成后則為每一個模塊啟動一個 goroutine 并執行模塊的 Run 方法。

最后,游戲服務器關閉時(Ctrl + C 關閉游戲服務器)將按模塊注冊相反順序在同一個 goroutine 中執行模塊的 OnDestroy 方法。

以上就是golang leaf用的多嗎的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女