protocol buffer 在游戏开发中的使用方式之一
Protocol buffer 是一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构(这个功能没用过)。正是因为它的这些特性,在游戏服务器与客户端的网络通信中,为了减小信息传输大小,提高高并发下信息传输速率,以及不同客户端之间的兼容性,都会选择它作为信息序列化与反序列化的工具。本例子使用Netty4.1.5作为网络通信,JDK版本是1.8。
一,准备工作
1,下载prootbuf的编码工具protoc.exe,下载地址:链接:http://pan.baidu.com/s/1nvpnwhz 密码:a0hc
2,解码目录,得到protoc.exe
二,协议格式制定
当我们需要游戏客户端与服务器行进交互的时候,我们必须定义交互数据的格式,以方便客户端与服务器都能理解解析。这其实就是我们常说的报文。因为在互联网中传输的信息都会被转化为二进制流。所以我们必须自己定义包的大小和结构。例如
|
包总长度 |
包内容 |
|
int |
object |
|
4字节 |
变长 |
这个协议包括两部分,一个是包内容的长度,一个是包的内容,在信息传输时,我们把包的内容使用protocol buffer进行序列化,如果序列化时使用的是protocol buffer工具,那么在解析,也就是反序列化时,也必须使用protocol buffer 工具。
三,protocol buffer的定义。
我们现在就使用protocol buffer工具做一个登陆请求的例子。在登陆的时候,客户端需要向服务器发送登陆的用户名和密码,这就是请求包的内容。我们先看一下protocol buffer的一些定义
。。。。。。。。。。。。。。。。。。。。
浙公网安备 33010602011771号