溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

leaf框架介紹

發(fā)布時(shí)間:2020-06-17 13:55:27 來(lái)源:億速云 閱讀:311 作者:鴿子 欄目:編程語(yǔ)言

Leaf 是一個(gè)由 Go 語(yǔ)言(golang)編寫的開(kāi)發(fā)效率和執(zhí)行效率并重的開(kāi)源游戲服務(wù)器框架。Leaf 適用于各類游戲服務(wù)器的開(kāi)發(fā),包括 H5(HTML5)游戲服務(wù)器。

Leaf 的關(guān)注點(diǎn):

良好的使用體驗(yàn)。Leaf 總是盡可能的提供簡(jiǎn)潔和易用的接口,盡可能的提升開(kāi)發(fā)的效率

穩(wěn)定性。Leaf 總是盡可能的恢復(fù)運(yùn)行過(guò)程中的錯(cuò)誤,避免崩潰

多核支持。Leaf 通過(guò)模塊機(jī)制和 leaf/go 盡可能的利用多核資源,同時(shí)又盡量避免各種副作用

模塊機(jī)制。

Leaf 的模塊機(jī)制

一個(gè) Leaf 開(kāi)發(fā)的游戲服務(wù)器由多個(gè)模塊組成(例如 LeafServer),模塊有以下特點(diǎn):

每個(gè)模塊運(yùn)行在一個(gè)單獨(dú)的 goroutine 中

模塊間通過(guò)一套輕量的 RPC 機(jī)制通訊(leaf/chanrpc)

Leaf 不建議在游戲服務(wù)器中設(shè)計(jì)過(guò)多的模塊。

游戲服務(wù)器在啟動(dòng)時(shí)進(jìn)行模塊的注冊(cè),例如:

leaf.Run(
game.Module,
gate.Module,
login.Module,
)

這里按順序注冊(cè)了 game、gate、login 三個(gè)模塊。每個(gè)模塊都需要實(shí)現(xiàn)接口:

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

Leaf 首先會(huì)在同一個(gè) goroutine 中按模塊注冊(cè)順序執(zhí)行模塊的 OnInit 方法,等到所有模塊 OnInit 方法執(zhí)行完成后則為每一個(gè)模塊啟動(dòng)一個(gè) goroutine 并執(zhí)行模塊的 Run 方法。

最后,游戲服務(wù)器關(guān)閉時(shí)(Ctrl + C 關(guān)閉游戲服務(wù)器)將按模塊注冊(cè)相反順序在同一個(gè) goroutine 中執(zhí)行模塊的 OnDestroy 方法。

以上就是golang leaf用的多嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI