Java 백엔드 (바람둥이, 봄)를 사용하는 2 명의 사용자 사이에 간단한 아약스 게임이 있습니다. 한 사용자에게 상대방이 차례를 보낸 사실을 알리는 좋은 방법이 필요합니다. 이제 모든 통신이 데이터베이스를 통해 수행하고 자신의 차례를 완료 상대를 기다리는 것은 다음과 같습니다된다Java : 사이트 사용자 간의 효율적인 알림이 필요합니다.
while(!timeout && !opponentIsDone) {
//...get the game record from db and check if opponent made turn
Thread.sleep(100);
}
내가 어떻게 든 잠 (이 루프 제거 가능) 및 즉시 지체없이 통지받을 (그러나 타임 아웃) ? 아마도 일부 글로벌 정적 var 만들고 그것을 통해 통신 할 수 있지만 여전히 비슷한 루프가 필요합니다 어쩌면 제한 시간이 더 작을 것입니다.
아약스를 통해 브라우저로 갈 필요가 있고 데이터를 가져올 수 없기 때문에 차례가 완료되면 일부 메소드를 호출 할 수 없습니다. 그래서 상대방을 기다리는 과정이 필요합니다.
나는 가볍고 간단한 해결책을 찾고 있습니다.
감사합니다.
에 대한 몇 가지 논의가있다. –
(가장 좋은 대답은 아마도 JMS를 사용하는 것과 비슷할 것이다.) –
데이터베이스는 mysql (최대 절전 모드) – serg