Java:需要站点用户之间的有效通知

标签 java ajax spring tomcat communication

我在 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/

相关文章:

java - Spring:如何在没有构造函数的情况下初始化属性?

Spring 网络套接字 : How intercept a message sent by SimpMessagingTemplate through any either convertAndSend or convertAndSendToUser methods?

java - Spring Boot MVC 的 web.xml <jsp-config> 等效项?

java - java轻量级分布式文件系统实现

java - java中的字符串截断

java - 在 JPA 中只获取父对象数据

java - JProfiler : After Garbage Collector collects the object. 如果堆上有任何 Live 对象,是否是内存泄漏?

Ajax 请求中的 jQuery Ajax 请求

javascript - 页面加载时如何在jquery中获取增量值

javascript - 如何制作类似 "webmail"的文件附加/上传