大型Moba项目开发记录3

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gsm958708323/article/details/80330027

ProtoBuf使用

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
或许您和我一样,在第一次看完这些介绍后还是不明白 Protobuf 究竟是什么,那么我想一个简单的例子应该比较有助于理解它。

  • 书写 .proto 文件
    首先我们需要编写一个 proto 文件,定义我们程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Message。proto 文件非常类似 java 或者 C 语言的数据定义。代码清单 1 显示了例子应用中的 proto 文件内容。
package lm; 
message helloworld 
{ 
   required int32     id = 1;  // ID 
   required string    str = 2;  // str 
   optional int32     opt = 3;  //optional field 
}

在上例中,package 名字叫做 lm,定义了一个消息 helloworld,该消息有三个成员,类型为 int32 的 id,另一个为类型为 string 的成员 str。opt 是一个可选的成员,即消息中可以不包含该成员。

  • 编译 .proto 文件

编译proto文件,使用的批处理命令

@echo off
set tool=..\3Party\protobuf-net\net
//使用的工具所在路径

rem Support
set proto=begingame.proto  //处理的文件
%tool%\protogen.exe -i:%proto% -o:%proto%.cs -q  //输出的文件名字

pause

网络架构

  • Queue 先进先出
  • 消息类型
  • 消息包的读取和写入
  • NetGame发送网络消息
  • NetworkManager读取消息

猜你喜欢

转载自blog.csdn.net/gsm958708323/article/details/80330027