1

我正在从服务器向客户端发送带有某些对象的解码坐标的 base64 字符串。大约有 20 个对象具有 x;y 对,每个整数 2 个字节。这个坐标会随着时间而变化,但其中一些会为大约 2-3 次发送呼叫保存相同的值。

有什么方法可以计算差异并每次发送而不是完整的base64?网络流量在这里非常重要。

这是使用 100 毫秒暂停制作的 2 个字符串的示例:

AFg7IP+SAAJg/ana/zAA52BJO/D/9wAxIFkAIABIABQBSADtAFEAMGlLctX/
AFo7IP+SAAJgAKnb/0EA6GBJO/D//wA0IFkAIABIABQBSADtAEoAYmlLctX/
4

1 回答 1

1

首先,以字节为单位有效地打包数据,然后在必要时进行编码。正如@twall 所说,您应该努力消除基数 64,因为它至少将数据大小扩展了 33%。如果正好有 20 个 x,y 对,这是一种打包方法:

字节 1-3:位集。每个位代表一个 x,y 对。如果设置,则此消息中有该对的更新值。第 3 个字节的最后 4 位未使用。

字节 5&6 x 第一个点的坐标 字节 7&8 y 第一个点的坐标

... 最多 19 分

最多 83 个字节,最少 3 个字节(未更新坐标)

于 2012-06-22T11:33:17.023 回答