私は、 Web サーバーC# mobile
との主要な対話を必要とするアプリケーションに取り組んでいます。PHP
ただし、接続はcellular network
. このネットワークは、ランダムなタイミングでリクエストをドロップする可能性があります。以前の「オフライン モード」アプリケーションで経験した問題は、リクエストがタイムアウトになったときに、サーバーがそのリクエストを処理済みである場合と、処理していない場合があることです。リクエストを複数回送信すると重複が生じる場合、これは問題です。私はこれを歩いていて、次のアイデアを思いつきました。
UniqueRequestID: 1
モバイルは、リクエストとともに送信されるようにヘッダー値を設定します。- リクエストを受信すると、PHP サーバーは
UniqueRequestID
を現在のユーザー セッションに追加します。$_SESSION['RequestID'][] = $headers['UniqueRequestID'];
id
サーバーは、現在のセッションに が存在する場合は true を返し、存在しない場合は false を返す GetRequestByID を実装します。または、キャッシュされたリクエストの結果を返すこともできます。
これは、リクエストがサーバーに正常に接続されたかどうかを確認するためのある程度信頼できる方法のようです。モバイルでは、サーバーへの再接続時に、リクエストが受信されたかどうかを確認します。その場合は、その保留中をスキップしoffline message
て、次の保留に進みます。
質問 ここで車輪を再発明しましたか? この方法は失敗しやすいですか (または、うさぎの穴に落ちますか)? より良い方法/代替手段はありますか?
-私はこれをここで他の開発者に売り込みましたが、これは非常に単純に見え、この「システム」がすでにどこかに存在する可能性が高いことを暗示していると考えました。
-今日、私の Google スキルが役に立たなかったら申し訳ありません。