用unity进行数据可视化开发通讯协议和数据格式的选择和自定义

本文探讨了在Unity中使用自定义数据格式替代Json以优化性能,提出了将数据按照固定格式存储并使用特定协议读取的方法。作者分析了TCP、UDP、HTTP和WebSocket协议的优缺点,并建议根据项目需求选择合适协议。对于实时性要求高的游戏,考虑使用自定义数据格式和WebSocket或UDP协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先附上一个我用来代替Json格式传输字符串数据的格式思路:

几个值得注意的点:
1)核心思路是:把所有数据按照固定格式或位置放在一个字符串中,按照一种协议的方式对数据进行查找和读取;
2)为保证可读性,数据和数据之间可以用空格或#等其他符号作为间隔符。如果需要加密,可以不用间隔符对数据区间进行分割,后续可以采用加密算法对字符串进行加密。
3)如果客户端和服务器进行通信,传输的字符串对应着一种相同的协议,双方应共同持有并了解该协议的内容。
示例:
如果把小明的属性转换为字符串进行传输通信:
名字 :“小明“,年龄:“20”,学校:”电子科技大学“,专业:”软件工程“
协议内容为:
1.名字:10个字符长度,2.年龄:3个字符长度,3.学校:20个字符长度,4.专业:20个字符长度

则转换后的字符串:
小明 20 电子科技大学 软件工程
所有数据没有名称说明解释字段,不需要反复遍历解析字符串,协议中规定的字符长度为最大字符长度,如果不满最大长度用空格补位
读取“名字”的时候,直接读取 (0 , 9)字符串位置
读取“学校”的时候,直接读取 (9 + 1 + 3 + 1 ,9 +1 + 3 + 1 + 20)字符串位置的数据

(配置环境/须知/博客定位/目的)

在unity开发的过程中发现程序的瓶颈主要体现在对数据通讯,因为我们用的json格式的数据传输,每秒要处理大概200k的数据,websocket通讯协议保证实时性,遇到的问题是json的序列化和反序列化对cpu的负载比较高,所以今天和后端部门沟通可以取得一次对数据格式重新定制的讨论权限,通过网上搜集一些资料,了解到在大部分的游戏开发中,由于游戏需要实时性和交互性,一般对通讯协议的要求比较高,而且数据格式一般都自定义,不然对安全性和实时性都会造成影响。从安全性角度分析,我们的项目和后台是处于内网连接,虽然所有数据都保证在内网传输,但是我觉得也不能保证完全的安全性,但是目前阶段开发仅需要考虑对性能优化,安全性我觉得可以在后续阶段再进行考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值