首先 咱們須要增長玩家註冊、登錄的協議,消息結構定義在server\msg\msg.go中,可是爲了便於查找建議單獨創建文件 例如 以下圖 創建目錄:server\msg\protocolfile\protocol.gogit
protocol.go 內容github
package Protocol
// 用戶登錄協議
type UserLogin struct {
LoginName string // 用戶名
LoginPW string // 密碼
}
// 註冊協議
type UserRegister struct {
LoginName string // 用戶名
LoginPW string // 密碼
// Mobi string // 手機號
// Email string // 郵箱
}
// 玩家的臨時結構
// 玩家有角色的狀況
type UserST struct {
UID string // 帳號ID
ServerID string // 服務器ID
RoleUID string // 角色UID
RoleName string // 角色名字
RoleLev string // 角色等級
Coin string // 金幣
// 其餘的暫時不作定義
}
路由配置方式請參照前幾節文章,本節及後面只是歸納
路徑:server\gate\router.gojson
router.go :服務器
package gate
import (
_ "server/game"
"server/login"
"server/msg"
"server/msg/protocolfile"
)
func init() {
msg.Processor.SetRouter(&Protocol.UserLogin{}, login.ChanRPC)
}
註冊消息
路徑:server\msg\msg.go
msg.go:app
package msg
import (
"server/msg/protocolfile"
"github.com/name5566/leaf/network"
"github.com/name5566/leaf/network/json"
)
var Processorbak network.Processor
// 使用默認的 JSON 消息處理器(默認還提供了 protobuf 消息處理器)
var Processor = json.NewProcessor()
func init() {
// 這裏咱們註冊了一個 JSON 消息 Test
Processor.Register(&Protocol.UserLogin{})
}
以上配置完成後,消息註冊及路由配置就OK了,總結下 以下:
1 msg.go 消息註冊使用
2 protocol.go 消息定義框架