0

2 人のプレーヤーが 2 つの異なるブラウザでゲームをプレイしているとします。ゲームの状態はセッション変数に保存され、各ブラウザには異なるセッションがありますが、ゲーム オブジェクトは 2 人のプレイヤーが先に進む必要があります。ゲーム マネージャーは、プレイヤーがゲーム ページに進む前に、2 つの異なるセッションがサインオンしていることを確認します。これは、サインイン、色の選択、およびゲームの終了を行う複数ページのゲームになります。プレイヤーを切断する最もクリーンな方法は、ゲームが終了し、プレイヤーがもうプレイしないことを選択できるようになるまで待つことです。

プレーヤーがゲーム ページから移動した場合、どうすればゲームが終了したことを他のプレーヤーに知らせることができるのでしょうか。残りのプレーヤーをきれいに切断してサインイン ページに戻すことができます。新しいプレーヤー。ブラウザーは 2 つのセッション間の切断をどのようにリッスンしますか?

4

1 に答える 1

1

セッションはブラウザ側では維持されません。どちらのブラウザもセッションを認識していません。この結果を達成するために複数の戦略を持つことができます

  1. ユーザーがページを離れていることを検出して適切な警告を表示したり、ユーザーがページを終了したことを示すメッセージをサーバーに送信したりできる、利用可能なクライアント側のJavaScriptが多数あります。また、ブラウザウィンドウが閉じていることを検出することもできます。そのうちの1つを使用できます。

  2. サーバー側では、ユーザーの最終応答時間を確認する必要があります。ユーザーが事前に定義された時間応答しない場合、ユーザーは切断されていると見なすことができます。

  3. asp.netでセッションタイムアウトを構成できます。また、セッションの有効期限が切れると、global.asaxファイルにイベントが表示されます。このようにして、ユーザーが切断されていることを確認できます。

結果を得るには、3つすべてを組み合わせて使用​​することをお勧めします。これらの1つが失敗すると、もう1つが機能します。

于 2012-10-04T04:56:17.393 に答える