Java EE对我来说是一个庞然大物,我前一天已经提出了一个非常类似的问题,但没有得到任何充分的回应。
简单地说,我想为我的GlassFish服务器制作一个计时器循环,它将不断向通过websocket连接的任何客户端发送信息包。
我希望这个发送数据包A LOT(每隔几毫秒),因为这是用于游戏的实现。
我已经看过一个使用@Schedule
注释的建议,但每秒最多只有一次,这对我正在做的事情来说是不够的。
我看过网络,但我甚至不知道用什么关键字来查找我在Java中寻找的东西。有什么提示吗?
答案 0 :(得分:0)
您可以将TimerService与@Timeout注释结合使用,以毫秒为间隔。
package my.example;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.ejb.LocalBean;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
@Singleton
@LocalBean
@Startup
public class IntervalTest {
@Resource
private TimerService timerService;
@PostConstruct
private void init() {
// Start after 1 seconds, subsequently every 50 milliseconds
timerService.createTimer(1000, 50, "IntervalTest");
}
@Timeout
public void execute(Timer timer) {
// do something
}
}