Java - Atmosphere long polling只发送第一条消息

时间:2017-02-06 23:40:16

标签: java spring-boot long-polling atmosphere

我正在尝试实现一种通知机制,客户端连接到服务器并接收更新。

每个用户都连接到这样的服务端点

@ManagedService(path = "/chat/{userId}")

当他们连接时,他们就像这样在广播公司注册

    @Ready
    public void onReady(final AtmosphereResource resource) {
        Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
        broadcaster.addAtmosphereResource(resource);
    }

例如,当我想从REST端点发送消息时,我会这样做

@RequestMapping(value = "/ws2/{userId}", method = RequestMethod.GET)
    public void test(@PathVariable("userId") String userId) {
        Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
        broadcaster.broadcast(new Message(userId, "User id : "));
    }

当我使用 web-socket 实现时,它非常有效。 当我更改为长轮询并调用此REST方法时,仅发送第一条消息,其他消息将被忽略,没有任何错误或任何类型的日志。 在这种情况下我该怎么办?

0 个答案:

没有答案