私は似たような種類のアプリに取り組んでいました。アイデアは、DB をどのように構築するかです。この場合、テーブル内の他のすべての属性とともに、bool 値である isSent というもう 1 つの属性を追加します。デフォルトでは、これは false であり、サーバーで更新されたときにのみ true に設定する必要があります。
これは、サーバーに同期されていないアイテムを見つけ出し、isSent が false であるアイテムのみを送信するのに役立ちます。
アイテムがサーバー上で更新されると、アプリはどのように認識するのでしょうか? そのために、サーバーは、送信したリクエストを各リクエストの成功メッセージとともに送り返す必要があります。リクエストは、要件に応じてアイテムの配列または単一のリクエストにすることができます。
Azure 同期テーブルも同じように機能します。最初にアイテムを作成すると、isSent が false としてオフライン DB に格納され、その要求がサーバーに送信されます。サーバーが成功を送信すると、isSent は true に更新されます。
この例を見てみましょう: オフラインでコメントしているとします。各コメントは個別のアイテムと見なされます。したがって、インターネットに接続すると、これらすべてのリクエストが送信され、各アイテムには他と区別するための一意の ID が割り当てられます。サーバーにアップロードするリクエストは次のようになります。
[
{
"unique_id" : 1,
"Comment" : "Hello"
},
{
"unique-id" : 2,
"Comment" : "How r u"
}
]
サーバーからの応答は次のようになります。
[
{
"unique_id" : 1,
"Status" : "success"
},
{
"unique_id" : 1,
"Status" : "failed"
}
]
応答を解析し、Status に基づいて DB の isSent 列を適宜更新します。