私たちはAndroidとIOSでゲームを実装しています。ゲームが終了すると、各クライアントはゲームを終了するためのAPIを呼び出します。これは、次のようになります。このようなJSONと一緒に複数の同時Web API要求のうち1つだけを処理する
/game/finish
:確認完了は常に呼ばれるようにするために
{ GameId:1, WinnerId: 2, .... }
、両方のプレイヤーが同じパラメータでこのAPIを呼び出します。したがって、要求はサーバで同時に受け取ることができる。サーバー側では、これらの同時リクエストのみを処理し、他の1つを落とす必要があります(勝者/敗者ポイントを正しく増減するため)。
サーバ側はC#を使用して実装され、WebAPIの
私は、ロックステートメントを使用して考えていますが、それは、パフォーマンスに影響を与える可能性があります。
私に優れたソリューションを提供するすべてのヘルプははるかにかなりのだろう。
何唯一の勝者が要求を送信した場合はどうですか? – Oscar
APIコールを受けてゲームが既に処理されたかどうかを単に確認するなどして、1つのクライアントだけがリクエストを送信したり、ゲームを解決済みとしてマークしたりしてください。終了しました。 ( 'if(!isGameHandled(gameID)){// //状態を処理して保存}') – jAC
ゲーム終了時にWinnerのインターネット接続が失われた場合、どうなりますか?私はそのゲーム@Oscarを失います。それで私たちは両方のクライアントに仕上げを呼びかけます。 – Nasseh