1

サーバーからクライアントに、いくつかのオブジェクトのデコードされた座標を持つbase64文字列を送信しています。x; yペア、整数あたり2バイトのオブジェクトが約20個あります。この座標は時間とともに変化しますが、そのうちのいくつかは、約2〜3回の通話の送信に対して同じ値を保存します。

差を計算して、毎回完全なbase64の代わりに送信する方法はありますか?ここでは、ネットワークトラフィックが非常に重要です。

100msの一時停止で作成された2つの文字列の例を次に示します。

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

1 に答える 1

1

まず、データをバイト単位で効率的にパックしてから、必要に応じてエンコードします。@twallが言うように、base 64はデータのサイズを少なくとも33%拡大するため、削除するように努力する必要があります。正確に20x、yペアがある場合、これをパックする1つの方法があります。

バイト1〜3:ビットセット。各ビットはx、yペアを表します。設定されている場合、このメッセージにはそのペアの更新された値があります。3番目のバイトの最後の4ビットは未使用です。

最初のポイントのバイト5&6 x座標最初のポイントのバイト7&8y座標

...最大19ポイント

最大83バイト、最小3バイト(座標は更新されません)

于 2012-06-22T11:33:17.023 に答える