einx 是乙個由 golang 編寫的用於遊戲伺服器或者應用伺服器的開源框架。使用簡便,便於初級程式設計師進行邏輯開發,同時einx能夠靈活擴充套件,開發團隊可根據需求設計網路拓撲.
特性:* 支援簡單型別序列化與反序列化的rpc
* 高效能與高精度的定時器
* 支援業務模組化
* einx/db 元件化資料庫相關操作
* einx/network 元件化網路io
* einx/log 非同步日誌庫
* einx/timer 時間輪定時器
* einx/module 模組
* einx/component 元件
* einx/lua 指令碼相關操作
---------------
每個模組有且僅有乙個goroutine用於處理被投遞到本模組中的訊息,在模組中的邏輯不需要考慮同步問題,簡化了邏輯開發難度,模組與模組之間可以通過rpc互動
使用 einx 搭建乙個簡單的伺服器
----------------------------------
安裝 einx
建立乙個簡單的einx例子:
einx的任務核心是module,module中可以新增各種component作為元件:
建立乙個tcpserver的component管理器:cyinx/einx/network 網路相關的component
cyinx/einx/db 資料庫相關的component
建立乙個邏輯module,並將tcpserver管理器加入到module之中,伺服器就可以啟動,並監聽2345埠的請求
註冊訊息handler與rpc:
註冊訊息handler需要事先註冊乙個message:
在註冊rpc時,使用字串作為rpc名,註冊handler時,需要使用之前註冊的msgid
import (註冊定時器使用module.addtimer函式,返回值為timerid,如果要提前停止timer,可以執行module.removetimer(timerid):"msg_def"
)var logic = einx.getmodule("logic")
func initdbhandler()
func testrpc(sender inte***ce{}, args inte***ce{}) )
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{})
einx 乙個用Go構建的遊戲伺服器
a example server for einx einx 是乙個由 golang 編寫的用於遊戲伺服器或者應用伺服器的開源框架。設計核心 每個模組有且僅有乙個goroutine用於處理被投遞到本模組中的訊息,在模組中的邏輯不需要考慮同步問題,簡化了邏輯開發難度,模組與模組之間可以通過rpc互動 ...
mysql 做遊戲伺服器配置 遊戲伺服器部署
bin bash 小菜鳥 掛機 版本 1.0 遊戲伺服器部署 基礎環境 mysql資料庫svn客戶端需部署才能執行此指令碼 if uid 0 then echo game server install else exit 1 firead p please create the storage ga...
mysql遊戲伺服器快取 遊戲伺服器快取策略
1 什麼是快取 在資料庫與伺服器邏輯之間加入的資料層 2 作用 減少資料庫操作 伺服器使用mysql作為資料庫,mysql每秒鐘併發數量有限,所以我們要減少mysql的操作。3 erlang的快取 erlang 在記憶體中可用 程序字典 gen state ets 儲存變數,理論上三種方式都可以作為...