目前对于 RIA 客户端-服务器通信,我使用 JSON over HTTP。但有效载荷仅占所有数据量的 20-30% 左右。
所以我想用类似 gmail 协议的东西替换 JSON 对象:
)]}'
89
[["v","xAsy6ax_v6o.en.","8","dd1ee0840f5f7b2d"]
,["di",569,,,,,[]
,[]
,,,[]
,[]
,[]
]
]
2691
[["ld",[["^ig",0,-1,-1,2,0,"l",,0,75,1,,1]
,["^i",0,-1,-1,2,0,"l",,0,2,1,,0]
,["^t",-1,-1,-1,2,0,"l",,0,5,1,,1]
,["^io_im",38,-1,-1,2,0,"l",,0,49,1,,1]
]
,[["[Imap]/Drafts",0,11,0,0,0,"l",,0,44,1,0,1,,,,0]
,["[Imap]/Sent",0,1438,0,0,0,"l",,0,43,1,0,1,,,,0]
,["[Imap]/Trash",0,742,0,0,0,"l",,0,42,1,0,1,,,,0]
正如你所看到的——这个协议之王对于网络传输来说效率更高。根据我自己的计算——它可以将数据量从 3 减少到 5 倍。
但处理起来比较困难。我正在寻找一些可以使用预存储结构解析信息并将此类数组转换为普通对象的库。
解析的性能当然很重要。
据我了解 - 这应该类似于 protobuf,但适用于 JS。你知道任何合适的库吗?