基于GoLang的MMO游戏服务器(二)
基于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游戏服务器(二)相关推荐
- 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf
组件分享之后端组件--基于Golang语言的游戏服务器框架leaf 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类 ...
- MMO游戏服务器从零开发(架构篇)- 网络部分
目录: MMO游戏服务器从零开发(架构篇) MMO游戏服务器从零开发(架构篇)- 网络部分 游戏服务器的网络分为2部分: 外网通信:服务器与客户端进行的网络数据交互. 对于使用java外网通信毋庸置疑 ...
- golang的开源游戏服务器框架
golang的游戏服务器框架有leaf, cellnet, mqant等. 一. 选择 cellnet好像使用callback回调方式, 直接pass. mqant使用了mqtt协议, 感觉写了太多, ...
- arduino nano 蓝牙_探索 Golang 云原生游戏服务器开发,5 分钟上手 Nano 游戏服务器框架...
介绍 Nano 是什么? 轻量级,方便,高性能 golang 的游戏服务器框架. nano 是一个轻量级的服务器框架,它最适合的应用领域是网页游戏.社交游戏.移动游戏的服务端.当然还不仅仅是游戏,用 ...
- [自己做个游戏服务器二] 游戏服务器的基石-Netty全解析,有例子,多图解释
目录 1.Netty 是什么 2.Netty的优点 3.核心组件 3.1 Netty的线程模型 3.2 EventLoopGroup 3.3 Channel 3.4 option()与childOp ...
- 解码mmo游戏服务器四:如何实现玩家状态的高同步性
问题引入:这里主要讨论状态同步,client A发生状态变化(移动,换装,属性变化等),将变化的信息同步到client B,最简单做法就是直接通过服务器中转然后广播出去,但是由于存在网络延迟,所以cl ...
- mmo游戏服务器性能指标,关于performance:厚积薄发MMORPG手游合理的性能参数
1)MMORPG手游正当的性能参数 2)应用ScriptableBuildPipeline打包的疑难 3)如何获取到Animation批改材质球色彩后的色彩值 4)嵌套预设AssetBundle打包 ...
- golang Leaf 游戏服务器框架简介
Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的 ...
- MMO大型多人在线游戏服务器架构简述
mmo服务器架构总体来说相对比较复杂,由多组服务器进程组成.而这些服务器进程大致分为两类,一类是平台服,另一类是普通服. 一.平台服 平台服务器一般都用于处理全局相关功能,涉及玩家登陆,角色唯一性认证 ...
- 游戏服务器框架 Leaf/go
Leaf/go 详细介绍 Leaf 是一个使用 Go 语言开发的开源游戏服务器框架,注重运行效率并追求极致的开发效率.Leaf 适用于几乎所有的游戏类型.其主要的特性: 良好的使用体验.Leaf 总是 ...
最新文章
- 打造高效机房就这么简单(一)
- python 如何建立图形用户界面_python(五)图形用户界面easyGUI入门
- 使用Java Servlet,JSP标签和Stormpath快速构建Java Web App
- 【转】linx 设备名字来由 sd sr sg st
- Invitation Cards POJ 1511
- c语言学习-求一元二次方程的根
- 理解JavaScript的宏微任务
- django admin下拉列表不显示值,显示为object的处理
- ubuntu14.04 LTS Visual Studio Code 编辑器推荐
- DxO FilmPack 5详细教程:对照片进行艺术渲染,使其具有专业电影的色彩和颗粒感
- 利用 Kubernetes Service 的 selector 无痛运维在线 pod
- react中的虚拟DOM
- 学计算机专科好还是牙医好,孩子明年高考,牙科、计算机两个专业,怎么选?...
- 大学计算机知识竞赛幽默主持词,知识竞赛幽默主持词.docx
- 高数竞赛、数学建模、算法、计算机专业书籍等亲情大甩卖
- openlayer 图层上下_OpenLayers 之 图层(Layers) 详解
- 利用Python中的requests+wget批量下载微信页面上的音频
- 支持win7的无损分区大小调整软件
- Oracle中计算年龄SQL语句
- docker创建python容器
热门文章
- ant man 什么意思_man是褒义娘就是贬义么?百雀羚真的敢说
- 存储卡格式化后数据如何恢复呢?
- 计算机建立第2用户,2016年计算机二级VF备考练习题及参考答案(5)
- CCNA Security 网院期末考试
- ESN学习笔记——echotorch(2)narma10
- 实数单竖线,向量双竖线,范数双竖线加下标,矩阵单竖线
- 计算机网络: IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解
- 【数据结构】有限状态自动机(FSA)的理解-LeetCode表示数值的字符串(有效数字)题解(Java)
- 第二十三章 宋桓公自行其是讨苦吃 齐桓公连克宋郑震东方
- 易基因 | 植物DNA甲基化专题 | NAR:拟南芥AtHDA6与着丝粒周围DNA甲基化关系研究