我正在尝试实现一种通知机制,客户端连接到服务器并接收更新。
每个用户都连接到这样的服务端点
@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方法时,仅发送第一条消息,其他消息将被忽略,没有任何错误或任何类型的日志。 在这种情况下我该怎么办?