V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
johnsneakers
V2EX  ›  问与答

想请教一下做游戏的朋友,数据传输用的是字节还是 json

  •  
  •   johnsneakers · 2018-03-29 20:02:23 +08:00 · 2689 次点击
    这是一个创建于 2456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在接手了一个项目(80%完成度),服务器客户端协议是长链接+字节方式传输数据,游戏属于休闲挂机游戏。

    之前一直习惯 json 直来直去,调错方便。 现在这个项目我查 bug 可以说 50%的时间花在算字节.. 在纠结要不要改成 json,改得化不怕工作量(前后端都是我在写),就是担心日后出现超出我想象不好处理又得改回来的问题

    想在这里问下经验比较丰富的朋友该如何处理。

    11 条回复    2018-03-30 09:37:19 +08:00
    choury
        1
    choury  
       2018-03-29 20:06:42 +08:00
    写个解析工具不就行了,protobuf 也是二进制的啊,二进制肯定效率高些
    ryV60s
        2
    ryV60s  
       2018-03-29 20:10:15 +08:00
    讲道理,前后端数据格式前期定好了,后面用不着去调试的。
    说明前后端数据同步这块没写好啊,跟用啥没关系。
    建议 Protobuf。
    misaka19000
        3
    misaka19000  
       2018-03-29 20:16:53 +08:00 via Android
    json 有点浪费带宽
    MeteorCat
        4
    MeteorCat  
       2018-03-29 20:17:29 +08:00 via Android
    protobuf
    sudoz
        5
    sudoz  
       2018-03-29 20:17:43 +08:00
    看场景
    如果是走 HTTP,和浏览器 APP 做数据交互,必然是 JSON
    如果是内网服务化系统间的数据交互,走 TCP,建议 protobuf
    mozutaba
        6
    mozutaba  
       2018-03-29 20:20:46 +08:00
    protobuf,不用这个真的是天天算字节。
    json 浪费带宽,不是实时类的游戏到也没啥问题。
    changnet
        7
    changnet  
       2018-03-29 20:22:13 +08:00 via Android
    休闲游戏你用 json 可以,arpg 你用 json 看看,怕你的 cpu 解析协议都解析不过来。成熟的框架基本用字节流或者 protobuf。不明白查 bug 为什么算字节流,一般通信模块是最先稳定下来的,以后调功能就不需要算。数据不对查下发送接收就行。
    MeteorCat
        8
    MeteorCat  
       2018-03-29 20:28:03 +08:00 via Android
    啊哈,你们公司是武侠页游吧?我记得不少公司都是那套源码,基本上都是靠 C/C++结构体加密序列化传输,常常数据需要对下 sizeof 对不对
    johnsneakers
        9
    johnsneakers  
    OP
       2018-03-29 20:35:43 +08:00
    @changnet 因为这边做还是草台班子,刚开始。 经常遇到一个接口服务器传长了客户端解析错位,然后就要一个一个 debug 或者肉眼去算长度。看到大家说的,看来是我经验不足的问题了。。

    @MeteorCat 答错了,我 golang 写的
    0987363
        10
    0987363  
       2018-03-29 21:52:59 +08:00 via Android
    @johnsneakers golang 还用自定义二进制那不是蛋疼。。
    yunchen2
        11
    yunchen2  
       2018-03-30 09:37:19 +08:00
    我们在用 protobuf
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1147 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:17 · PVG 02:17 · LAX 10:17 · JFK 13:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.