服务器使用 Atmosphere IO 定期推送

Server push periodically using Atmosphere IO

我尝试实现的场景如下,

1) 暂停@GET 处理程序中的所有传入请求

2) 将传入请求资源添加到广播者

3) 定期 post 数据间隔 broadcaster.broadcast()

尝试使用 atmosphere-jersey 和 @Schedule 注释但无法 post 数据。不确定 Executorservice 是否适合这种情况。定期从服务器端 posting 是否遗漏了什么。

请多指教!

Broadcaster.scheduledFixedBroadcast() 看起来可以定期安排服务器推送。

正在从服务器端安排广播,

        @PathParam("topic")
        Broadcaster broadcaster;

        @Suspend(contentType = "application/json")
        @GET
        public SuspendResponse<String> search() {
            if (broadcaster.getAtmosphereResources().size() == 0) {
                broadcaster.scheduleFixedBroadcast(new Callable<String>() {
                    public String call() throws Exception {
                    // Wait for the connection to be suspended.

                    broadcaster.broadcast("broadcast");
                    return null;
                    }
                    }, 5000, TimeUnit.MILLISECONDS);
            }
            return new SuspendResponse.SuspendResponseBuilder<String>()
            .broadcaster(broadcaster)
            .outputComments(true)
            .addListener(new EventsLogger() {
                    @Override
                    public void onSuspend(
                    AtmosphereResourceEvent event) {
                        super.onSuspend(event);

                    }
            }).build();
        }