MessageData

高效率的数据交换格式-MessageData(一)简介

本系列文章将分为四篇讲述

高效率的数据交换格式-MessageData(一)简介

高效率的数据交换格式-MessageData(二)原理以及应用

MessageBundle的原理以及在Unity中的使用

MessageData、MessageBundle、Json的效率对比

网络数据传输在各类应用开发中十分常见,在前后端数据交互中,经常会使用一些数据格式来对数据进行封装和解析。目前常用的数据交换格式有Json、Xml、Protobuf等,当然也可以直接序列化和反序列化对象。

MessageData是什么?

MessageData是一种以纯字节的形式封装数据的数据交换格式。在网络应用开发中,berry一直在考虑如何降低网络传输的带宽量,特别是在网络交互很频繁的时候尤为重要。为此berry尝试开发了MessageData这一数据交换格式,来提高网络传输效率。目前MessageData支持的平台为Java、C#。

MessageData与常用数据交换格式的比较

对比在Web开发中最常用的交换格式Json,MessageData的存储形式为字节数据,而Json的存储形式为字符串。

MessageData相对Json等存储形式为字符串的交换格式,具备以下特点

1)数据有效率高。相比字符串,字节方式的储存会减少很多垃圾数据。

2)转换速度更快。根据Class信息直接对字节数据进行解析,速度更快。

3)使用方便。直接对object进行操作,支持基本数据类型、对象、结构体、List等。

相对而言MessageData的缺点也十分明显。

1)转储数据可读性差。

2)不支持动态解析。因为基于object信息进行解析,不可在程序编译后进行修改(不支持hotfix热修复)。

MessageData的应用场景

MessageData适用于通信频率较高的应用,比如对战游戏,即时通讯等。MessageData也可以作为一种文件存储格式,可以保存二进制数据。在网络传输中也可以使用MessageData来序列化和反序列化对象数据。

MessageData还有另一种形态MessageBundle。MessageBundle抛弃了对object的依赖,基于模板数据解析,具备一定的可读性,支持动态解析。berry会在后面的文章介绍它。

(6)

本文由 树莓屋 作者:Berry贝锐 发表,转载请注明来源!

关键词:

热评文章

评论:

1 条评论,访客:1 条,博主:0 条
  1. -7。C的淚灬痕
    -7。C的淚灬痕发布于: 

    不错

发表评论