基于GoLang的MMO游戏服务器(二)

Protobuf的使用

配置环境

  • proto的环境配置百度一下就好了(这里不介绍了)
    先下载Proto的代码包
    Protobuf的GitHub的传送门
  • 注意,现在使用的版本高于V1.4,根据官网的介绍,需要使用google.golang.org/protobuf替换,不然会报错的
  • 进入protobuf目录
  • 进入protoc-gen-go目录下
  • 进行go build
  • 进行go install
  • 如果出现:go: github.com/google/go-cmp@v0.4.0: Get "https://proxy.golang.org/github.com/google/go-cmp/@…
  • 则执行 go env -w GOPROXY=https://goproxy.cn 换至国内

Proto的语法

syntax = "proto3";
option go_package = "/pbgo";message Person{string name = 1;int32 age = 2;repeated string emails = 3;repeated PhoneNumber numbers =4;
}enum PhoneType{HOME = 0;WORK = 1;
}message PhoneNumber{string number = 1;PhoneType type = 2;
}

Protobuf编译

  • 编译路径下的全部.proto文件
protoc --go_out=. *.proto

Protobuf协议编程(测试Protobuf)

func TestProto(t *testing.T) {person := &pbgo.Person{Name:   "zzs",Age:    18,Emails: []string{"123", "456", "789"},Numbers: []*pbgo.PhoneNumber{&pbgo.PhoneNumber{Number: "aaa",Type:   pbgo.PhoneType_HOME,},&pbgo.PhoneNumber{Number: "bbb",Type:   pbgo.PhoneType_WORK,},},}//编码fmt.Println(person)buffer, err := proto.Marshal(person)if err != nil {fmt.Println(err)return}//解码newPerson := &pbgo.Person{}proto.Unmarshal(buffer, newPerson)fmt.Println(newPerson)
}

基于GoLang的MMO游戏服务器(二)相关推荐

  1. 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf

    组件分享之后端组件--基于Golang语言的游戏服务器框架leaf 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类 ...

  2. MMO游戏服务器从零开发(架构篇)- 网络部分

    目录: MMO游戏服务器从零开发(架构篇) MMO游戏服务器从零开发(架构篇)- 网络部分 游戏服务器的网络分为2部分: 外网通信:服务器与客户端进行的网络数据交互. 对于使用java外网通信毋庸置疑 ...

  3. golang的开源游戏服务器框架

    golang的游戏服务器框架有leaf, cellnet, mqant等. 一. 选择 cellnet好像使用callback回调方式, 直接pass. mqant使用了mqtt协议, 感觉写了太多, ...

  4. arduino nano 蓝牙_探索 Golang 云原生游戏服务器开发,5 分钟上手 Nano 游戏服务器框架...

    介绍 Nano 是什么? 轻量级,方便,高性能 golang 的游戏服务器框架. nano 是一个轻量级的服务器框架,它最适合的应用领域是网页游戏.社交游戏.移动游戏的服务端.当然还不仅仅是游戏,用  ...

  5. [自己做个游戏服务器二] 游戏服务器的基石-Netty全解析,有例子,多图解释

    目录 1.Netty 是什么 2.Netty的优点 3.核心组件 3.1 Netty的线程模型 3.2 EventLoopGroup 3.3 Channel 3.4  option()与childOp ...

  6. 解码mmo游戏服务器四:如何实现玩家状态的高同步性

    问题引入:这里主要讨论状态同步,client A发生状态变化(移动,换装,属性变化等),将变化的信息同步到client B,最简单做法就是直接通过服务器中转然后广播出去,但是由于存在网络延迟,所以cl ...

  7. mmo游戏服务器性能指标,关于performance:厚积薄发MMORPG手游合理的性能参数

    1)MMORPG手游正当的性能参数 ​2)应用ScriptableBuildPipeline打包的疑难 3)如何获取到Animation批改材质球色彩后的色彩值 4)嵌套预设AssetBundle打包 ...

  8. golang Leaf 游戏服务器框架简介

    Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的 ...

  9. MMO大型多人在线游戏服务器架构简述

    mmo服务器架构总体来说相对比较复杂,由多组服务器进程组成.而这些服务器进程大致分为两类,一类是平台服,另一类是普通服. 一.平台服 平台服务器一般都用于处理全局相关功能,涉及玩家登陆,角色唯一性认证 ...

  10. 游戏服务器框架 Leaf/go

    Leaf/go 详细介绍 Leaf 是一个使用 Go 语言开发的开源游戏服务器框架,注重运行效率并追求极致的开发效率.Leaf 适用于几乎所有的游戏类型.其主要的特性: 良好的使用体验.Leaf 总是 ...

最新文章

  1. 打造高效机房就这么简单(一)
  2. python 如何建立图形用户界面_python(五)图形用户界面easyGUI入门
  3. 使用Java Servlet,JSP标签和Stormpath快速构建Java Web App
  4. 【转】linx 设备名字来由 sd sr sg st
  5. Invitation Cards POJ 1511
  6. c语言学习-求一元二次方程的根
  7. 理解JavaScript的宏微任务
  8. django admin下拉列表不显示值,显示为object的处理
  9. ubuntu14.04 LTS Visual Studio Code 编辑器推荐
  10. DxO FilmPack 5详细教程:对照片进行艺术渲染,使其具有专业电影的色彩和颗粒感
  11. 利用 Kubernetes Service 的 selector 无痛运维在线 pod
  12. react中的虚拟DOM
  13. 学计算机专科好还是牙医好,孩子明年高考,牙科、计算机两个专业,怎么选?...
  14. 大学计算机知识竞赛幽默主持词,知识竞赛幽默主持词.docx
  15. 高数竞赛、数学建模、算法、计算机专业书籍等亲情大甩卖
  16. openlayer 图层上下_OpenLayers 之 图层(Layers) 详解
  17. 利用Python中的requests+wget批量下载微信页面上的音频
  18. 支持win7的无损分区大小调整软件
  19. Oracle中计算年龄SQL语句
  20. docker创建python容器

热门文章

  1. ant man 什么意思_man是褒义娘就是贬义么?百雀羚真的敢说
  2. 存储卡格式化后数据如何恢复呢?
  3. 计算机建立第2用户,2016年计算机二级VF备考练习题及参考答案(5)
  4. CCNA Security 网院期末考试
  5. ESN学习笔记——echotorch(2)narma10
  6. 实数单竖线,向量双竖线,范数双竖线加下标,矩阵单竖线
  7. 计算机网络: IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解
  8. 【数据结构】有限状态自动机(FSA)的理解-LeetCode表示数值的字符串(有效数字)题解(Java)
  9. 第二十三章 宋桓公自行其是讨苦吃 齐桓公连克宋郑震东方
  10. 易基因 | 植物DNA甲基化专题 | NAR:拟南芥AtHDA6与着丝粒周围DNA甲基化关系研究