最近在做手游,短连接,有的api发送给客户端的数据(字符串)比较大,达到了40kb左右,想压缩一下。各位大大有没有好的解决方案呢?
lz的API返回的数据格式肯定是json或者xml或者其他字符串类型的,然后返回的数据属性太多就造成现在的局面,我说当初定义数据格式的时候你咋就没考虑这种低效的数据格式会带来的问题呢?
@flyingcodes 确实,返回的是json格式的字符串。 其实目前看来问题还不是很大,主要是在获取pvp排名等有大数据的时候,返回给客户端的数据量有点大,看了下有50多kb了。所以想看看有没有什么方式可以压缩下。 另:像这种api应该怎么设计才合理呢? 也是第一次做。
@imhered 既然你说了现在问题不大,那么可以在特殊的地方特殊处理一下,压缩也可以,或者返回字节数据,比如表示true不用字符串"true"而用一个二进制位,学过c的结构你就懂的
@imhered 返回字节数据卧铺不是说了吗?比如表示true不用字符串"true"而用一个二进制位。表示整数123456不是用字符串"123456",而是用4个字节或8个字节。定义好数据结构你就可以省略掉名称信息,比如你要返回{name:"my name", money: 123456789, time:"2015年12月13日 15:30:46.123", remark: "abcdef eeeeee"},你自己算算用json返回要多少字节?如果定义好结构呢,只要"my name"+4+4+"abcdef eeeeee",你看是不是省了好多?一条记录上节约的是不明显,你刚才说的pvp排名估计是多行记录吧?100行?那就省略了100 x N 了。
@imhered 123<br/><br/><a class="form" href="https://github.com/shinygang/Vue-cnodejs">I‘m webapp-cnodejs-vue</a>
@imhered <br/><br/><a class="form" href="https://github.com/shinygang/Vue-cnodejs">I‘m webapp-cnodejs-vue</a>
@imhered 最近也有这个需求,之前看到这贴,就收藏了。然后试了帖子里的所有方法,然后花了一天时间google和github,各种尝试,现在选定了方案,可以回答你了。 http://pieroxy.net/blog/pages/lz-string/index.html 就是这个!!server和browser都可以用,很好很强大。