Skip to content

yinweli/Mizugo

Repository files navigation

license lint test codecov

Mizugo

mizugo是一款使用go語言開發的遊戲伺服器框架, 包括TCP網路, 通訊協議, 資料庫組件等

分支列表

伺服器專案中的主要Git分支說明如下

分支 說明
main 主分支
client-unity 客戶端組件分支, 提供給unitypackage manager安裝用
client-unity-sample 客戶端組件範例分支
proto-unity protobuf組件分支, 提供給unitypackage manager安裝用

系統需求

如何安裝

  • 確保在您的系統上安裝了go語言
  • 確保在您的系統上安裝了protoc
  • 安裝protoc-go, 請在終端機執行以下命令
    go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
  • 安裝mizugo, 請在終端機執行以下命令
    go get github.com/yinweli/Mizugo

伺服器組件

下面是一個簡化的伺服器程式範例, 如果需要更詳細的範例, 請造訪support/test-server/目錄

func main() {
    defer func() {
        if cause := recover(); cause != nil {
            // 處理崩潰錯誤
        } // if
    }()

    mizugos.Start() // 啟動伺服器
    ctx := ctxs.Get().WithCancel()

    // 使用者自訂的初始化程序
    // 如果有任何失敗, 執行 mizugos.Stop() 後退出

    for range ctx.Done() { // 進入無限迴圈直到執行 ctx.Cancel()
    } // for

    // 使用者自訂的結束程序
    // 如果有任何失敗, 執行 mizugos.Stop() 後退出

    mizugos.Stop() // 關閉伺服器
}

客戶端組件

請參閱客戶端組件說明
請參閱proto組件說明

管理器

mizugo擁有多種功能, 這些功能透過不同的管理器提供, 使用者可以根據自己的需求選擇使用這些管理器
以下提供了各管理器的基本資訊, 包括它們的軟體包與類別名稱, 以及管理器所在的位置

名稱 軟體包與類別名稱 管理器位置
配置管理器 configs.Configmgr mizugos.Config
度量管理器 metrics.Metricsmgr mizugos.Meter
日誌管理器 loggers.Logmgr mizugos.Log
網路管理器 nets.Netmgr mizugos.Net
資料庫管理器 redmos.Redmomgr mizugos.Redmo
實體管理器 entitys.Entitymgr mizugos.Entity
標籤管理器 labels.Labelmgr mizugos.Label
執行緒池管理器 pools.Poolmgr mizugos.Pool
信號調度管理器 triggers.Triggermgr mizugos.Trigger

專案目錄說明

目錄 說明
mizugos mizugo程式碼
mizugos/configs 配置組件
mizugos/cryptos 加密/解密組件
mizugos/ctxs context組件
mizugos/entitys 實體, 模組, 事件組件
mizugos/helps 協助組件
mizugos/iaps 購買驗證組件
mizugos/labels 標籤組件
mizugos/loggers 日誌組件
mizugos/metrics 度量組件
mizugos/msgs 封包結構
mizugos/nets 網路組件
mizugos/pools 執行緒池組件
mizugos/procs 訊息處理器組件
mizugos/redmos 雙層式資料庫組件(redis + mongo)
mizugos/trials 單元測試組件
mizugos/triggers 信號調度組件
support 支援專案
support/client-unity unity客戶端組件
support/proto-mizugo 內部proto定義
support/proto-test 測試proto定義
support/test-client-cs unity測試客戶端
support/test-client-go go測試客戶端
support/test-server 測試伺服器
testdata 測試資料

軟體包階層

階層名稱 軟體包名稱
測試層 testdata
測試層 mizugos/trials
工具層 mizugos/ctxs
工具層 mizugos/helps
工具層 mizugos/msgs
通用層 mizugos/cryptos
通用層 mizugos/iaps
通用層 mizugos/nets
通用層 mizugos/pools
通用層 mizugos/procs
組件層 mizugos/configs
組件層 mizugos/entitys
組件層 mizugos/labels
組件層 mizugos/loggers
組件層 mizugos/metrics
組件層 mizugos/redmos
組件層 mizugos/triggers

下面階層的軟體包可以引用上面階層的軟體包
上面階層的軟體包不能引用下面階層的軟體包
相同階層的不能互相引用

Task命令說明

輸入 task 命令名稱 來執行命令, 如果無法使用, 表示還沒有安裝task

命令名稱 命令說明
lint 進行程式碼檢查
test 進行程式碼測試
bench 進行效能測試
proto 更新訊息
subtree 更新子專案分支
stop 停止容器
db 啟動資料庫

JetBrains licenses

mizugo使用了JetBrains的Goland的免費開發許可, 在此表示感謝
JetBrains Logo (Main) logo. GoLand logo.