我在 2 个使用 java 后端(tomcat、spring)的用户之间有一个简单的 ajax 游戏。我需要一些好方法来通知一个用户他的对手转弯了。现在所有的通信都是通过数据库完成的,等待对手完成他的回合看起来像这样:
while(!timeout && !opponentIsDone) {
//...get the game record from db and check if opponent made turn
Thread.sleep(100);
}
我能否以某种方式使用 sleep() 摆脱这个循环并立即得到通知而不会延迟(但有超时)?我可能可以制作一些全局静态变量并通过它进行通信,但我仍然需要类似的循环,只是超时可能会更小。
我不能在转弯完成后就调用一些方法,因为它都需要通过 ajax 转到浏览器,我不能将数据推送到那里,只能拉取。所以我需要有等待对手的过程。
我正在寻找一些轻巧简单的解决方案。
谢谢。
最佳答案
您可能需要查看 Tomcat 的高级 IO (Comet) 支持。
http://tomcat.apache.org/tomcat-6.0-doc/aio.html
关于Java:需要站点用户之间的有效通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128907/