skynet sproto协议剖析(一)
前几天领导叫我分析一下skynet的sproto协议,说是要把HTML5项目和现有的skynet项目协议对接起来,意义非常重大,他自己写了开头,没有时间弄了,叫我继续搞.
接到指示之后,马不停蹄的查资料,看源代码,连休息的时候也在想着这个事情.经过2,3个完整工作时间(每天饱满8小时以上),终于做出来了,可以把json格式的数据经sproto协议打包之后正确的解包为原json数据了.
工作的重点是理解sproto协议数据包的结构,如下:
上面的一格表示一个字节.
拿一个基本的数据结构:{"age":15,"sex":"abc"}来举例,结构图如下:
int型数组数据{"age":[11,305419896,33]} 打包后结构表示为:
string型数组数据结构{"age":["123","abcd"]}打包后结构如下:
最后再来一个复合结构{"info":{"age":15,"sex":"abc"}} 打包后结构如下:
好了,基本所有数据都分析到了,作图,截图还是挺累的,o(∩_∩)o.
下篇讲解sproto协议的内部实现,敬请关注.