Java EE制作一个具有毫秒间隔的计时器来发送数据包

时间:2017-05-31 04:58:16

标签: java java-ee timer websocket glassfish

Java EE对我来说是一个庞然大物,我前一天已经提出了一个非常类似的问题,但没有得到任何充分的回应。

简单地说,我想为我的GlassFish服务器制作一个计时器循环,它将不断向通过websocket连接的任何客户端发送信息包。

我希望这个发送数据包A LOT(每隔几毫秒),因为这是用于游戏的实现。

我已经看过一个使用@Schedule注释的建议,但每秒最多只有一次,这对我正在做的事情来说是不够的。

我看过网络,但我甚至不知道用什么关键字来查找我在Java中寻找的东西。有什么提示吗?

1 个答案:

答案 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
   }
}