Java バックエンド (Tomcat、Spring) を持つ 2 人のユーザー間で単純な ajax ゲームをしています。対戦相手がターンを行ったことを 1 人のユーザーに通知する良い方法が必要です。すべての通信はデータベースを介して行われ、対戦相手が自分のターンを終了するのを待つのは次のようになります。
while(!timeout && !opponentIsDone) {
//...get the game record from db and check if opponent made turn
Thread.sleep(100);
}
どうにかして sleep() でこのループを取り除き、遅延なしで (ただしタイムアウト付きで) 即座に通知を受け取ることはできますか? おそらくいくつかのグローバルな静的変数を作成してそれを介して通信できますが、同様のループが必要になるだけで、タイムアウトが小さくなる可能性があります。
ターンが完了したら、メソッドを呼び出すことはできません。これは、すべて ajax を介してブラウザーにアクセスする必要があり、そこにデータをプッシュすることはできず、プルすることしかできないためです。なので、相手を待つプロセスが必要です。
軽量でシンプルなソリューションを探しています。
ありがとう。