1

私はAndroidの在庫アプリを持っています。現時点では、アプリは https 経由でサーバーと通信しています。私はすでに gzip を有効にしており、動作しています。ユーザーがバーコードをスキャンすると、アプリはそのコードと電話 ID をサーバーに送信します。私はXML経由でそれを行います。次に、サーバーは xml witch にいくつかのデータが含まれていると応答します。各倉庫での数量は、価格、商品名のようです。次に、ユーザーが金額を確認すると、アプリはサーバーに再度送信し、メッセージで応答します (OK、または OK ではありません)。

インベントリが WiFi 経由の場合、速度は問題なく、レイテンシは低くなります。しかし、インベントリがモバイル ネットワーク経由の場合、通信には遅延が伴います。通信用にバイナリ形式を作成する必要がありますか? また、XML データには大きなオーバーヘッドがあります (タグなどの不要なデータ)。または、通信におけるデータ量の最小化に関する標準またはベストプラクティスはありますか?

4

3 に答える 3

1

ペイロードのサイズを小さくすることを第一に考えている場合は、XML とは異なる形式を検討する必要があります。一般的なオプションの 1 つは、Google のprotobufです。

于 2012-10-18T17:30:12.090 に答える
1

アプリからレイテンシーを調整することはできません。ペイロードを小さくして送信を高速化できますが、それだけです。JSON を調べます。XML よりも大幅に軽量であり、ほぼすべての言語でネイティブに使用できます。

于 2012-10-18T17:35:36.710 に答える
0

クライアントからサーバーへのリクエストが多すぎる場合は、サーバーAPIの変更を検討してください。たとえば、在庫を取得する場合、商品のカテゴリを取得するための個別のAPIを使用できます。次に、カテゴリを取得した後、カテゴリごとに商品を取得するための個別の呼び出しを発行します。商品ごとに、詳細を取得するためのAPIがあります。リクエストの数を最小限に抑えるために、すべてのカテゴリ、各カテゴリのすべての製品、およびこれらの製品の詳細を提供する単一のAPIを作成できます。このアプローチにより、クライアントとサーバー間のリクエストの数が減ります。

ペイロードのサイズが非常に大きい場合は、より軽量なJSONを試すことができます。

于 2012-10-18T17:36:29.097 に答える