skynet sproto协议剖析(一)

前几天领导叫我分析一下skynet的sproto协议,说是要把HTML5项目和现有的skynet项目协议对接起来,意义非常重大,他自己写了开头,没有时间弄了,叫我继续搞.

接到指示之后,马不停蹄的查资料,看源代码,连休息的时候也在想着这个事情.经过2,3个完整工作时间(每天饱满8小时以上),终于做出来了,可以把json格式的数据经sproto协议打包之后正确的解包为原json数据了.

工作的重点是理解sproto协议数据包的结构,如下:

skynet sproto协议剖析(一)

上面的一格表示一个字节.

拿一个基本的数据结构:{"age":15,"sex":"abc"}来举例,结构图如下:

skynet sproto协议剖析(一)

int型数组数据{"age":[11,305419896,33]} 打包后结构表示为:

skynet sproto协议剖析(一)

string型数组数据结构{"age":["123","abcd"]}打包后结构如下:

skynet sproto协议剖析(一)

最后再来一个复合结构{"info":{"age":15,"sex":"abc"}} 打包后结构如下:

skynet sproto协议剖析(一)

好了,基本所有数据都分析到了,作图,截图还是挺累的,o(∩_∩)o.

下篇讲解sproto协议的内部实现,敬请关注.