我有一個簡單的ajax遊戲,有2個用戶使用java後端(tomcat,spring)。我需要一些很好的方式通知一個用戶他的對手轉了一圈。現在,所有的通訊都是通過數據庫完成,等待對手完成輪到他看起來是這樣的:Java:需要網站用戶之間的高效通知
while(!timeout && !opponentIsDone) {
//...get the game record from db and check if opponent made turn
Thread.sleep(100);
}
我可以以某種方式擺脫這種循環睡眠(中)和不延遲後立刻通知(但超時) ?我大概可以做一些全局的靜態變量並通過它進行通信,但是我仍然需要類似的循環,只是可能超時會更小。
我不能只在調用完成後調用某個方法,因爲它都需要通過ajax去瀏覽器,我不能在那裏推送數據,只能拉。所以我需要有一個等待對手的過程。
我正在尋找一些簡單明瞭的解決方案。
謝謝。
一些討論如果所有的通訊都是通過數據庫完成的,其數據庫系統,您可能是使用的想法告訴我們。 – 2009-07-15 01:21:49
(雖然最好的答案可能會像使用JMS一樣) – 2009-07-15 01:23:06
數據庫是mysql(通過休眠) – serg 2009-07-15 01:24:40