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 = json.NewProcessor()
func init() {
   // 这里我们注册了一个 JSON 消息 Test
   Processor.Register(&Protocol.UserLogin{})
}

以上配置完成后,消息注册及路由配置就OK了,总结下 如下:
1 msg.go      消息注册使用
2 protocol.go 消息定义


©著作权归作者所有:来自51CTO博客作者mb5fdb0a1b25659的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 社区leaf学习笔记|03. 调试Game、Login模块收发消息
  2. 微信小程序实现带参分享并消息卡片获取参数
  3. 系统发布用户通知以及相关增强
  4. 共享单车IOT物联网系统是怎么设计的?
  5. Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?
  6. 漫画:架构师是吧?什么是哈希轮?
  7. 下载10m/s!不限速阿里云网盘如何获取注册邀请码?
  8. 这样的高可用,我不要!
  9. Flink 消息聚合处理方案

随机推荐

  1. Android 简介:Android SDK 和开发框架简介
  2. android 屏幕方向切换 锁定方向
  3. Caused by: java.lang.IllegalStateExcep
  4. Android 基础 源码 工具
  5. Android 呼吸灯流程分析(一)
  6. android中校验email是否合法
  7. Android中设置控件透明度的方法
  8. 封装的一个android底部操作弹出窗
  9. Android文档阅读03—开发工具
  10. [置顶] Android修改源代码控制不锁屏