Leaf游戏框架--玩家登陆协议定义
首先 我们需要增加玩家注册、登陆的协议,消息结构定义在server\msg\msg.go中,但是为了便于查找建议单独建立文件 例如 如下图 建立目录:server\msg\protocolfile\protocol.go
protocol.go 内容
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.go
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:
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