einx 乙個用Go構建的遊戲伺服器

2021-09-19 21:06:06 字數 3450 閱讀 8421

a example server for einx (

einx 是乙個由 golang 編寫的用於遊戲伺服器或者應用伺服器的開源框架。

設計核心:

每個模組有且僅有乙個goroutine用於處理被投遞到本模組中的訊息,在模組中的邏輯不需要考慮同步問題,簡化了邏輯開發難度,模組與模組之間可以通過rpc互動

首先安裝 einx

git clone
建立乙個簡單的einx例子:

einx的核心是module,module中可以新增各種component作為元件:

cyinx/einx/network 網路相關的component

cyinx/einx/db 資料庫相關的component

建立乙個tcpserver的component管理器:

建立乙個邏輯module,並將tcpserver管理器加入到module之中,伺服器就可以啟動,並監聽2345埠的請求

註冊訊息handler與rpc: 註冊訊息handler需要事先註冊乙個message:

在註冊rpc時,使用字串作為rpc名,註冊handler時,需要使用之前註冊的msgid

import

( "msg_def"

)var

logic = einx.

getmodule

("logic"

)func

initdbhandler

() func

testrpc

(sender

inte***ce

{},

args

inte***ce

{})

func

checkversion

(agent

agent

, args

inte***ce

{})

註冊定時器使用module.addtimer函式,返回值為timerid,如果要提前停止timer,可以執行module.removetimer(timerid):

import

( "msg_def"

)var

logic = einx.

getmodule

("logic"

)var

testtimerid

uint64= 0

func

initdbhandler

() func

testrpc

(sender

inte***ce

{},

args

inte***ce

{})

}func

testtimer

(args

inte***ce

{})

func

checkversion

(agent

agent

, args

inte***ce

{})

原文發布時間為:2018-10-29

golang語言社群」,了解相關資訊可以關注「

golang語言社群」。

SGAME 乙個簡單的go遊戲服務端框架

sgame是乙個由go實現的遊戲簡單服務端框架。主要是使用go豐富的庫資源和較高的開發效率。目錄 架構與配置 多語言接入 簡單客戶端 連線選項 日誌系統 新加程序1 新加程序2 監控管理 基本框架 框架提供了乙個管理端用來簡單的監控各程序狀況,同時提供一些控制命令,比如過載配置,設定prof等來設定...

用express搭建乙個小遊戲伺服器環境

小遊戲主題部分採用到的js庫為 jquery,因為涉及到比較多的dom操作。主要做法為 html css js。主要資料夾為index.html和paoku,paoku資料夾裡有images js css 涉及到請求介面,所以需要搭建乙個伺服器環境,詳細操作文件 一 步驟 1 npm install...

乙個簡單的遊戲伺服器框架

最近一段時間不是很忙,就寫了乙個自己的遊戲伺服器框架雛形,很多地方還不夠完善,但是基本上也算是能夠跑起來了。我先從上層結構說起,一直到實現細節吧,想起什麼就寫什麼。第一部分 伺服器邏輯 伺服器這邊簡單的分為三個部分,客戶端的連線首先到達閘道器伺服器,閘道器這裡有個執行緒用來監聽來自與客戶端的連線,然...