Java-Atmosphere长轮询只发送第一条消息
我正在尝试实现一种通知机制,其中客户端连接到服务器并接收更新 每个用户都像这样连接到一个服务端点Java-Atmosphere长轮询只发送第一条消息,java,spring-boot,long-polling,atmosphere,Java,Spring Boot,Long Polling,Atmosphere,我正在尝试实现一种通知机制,其中客户端连接到服务器并接收更新 每个用户都像这样连接到一个服务端点 @ManagedService(path = "/chat/{userId}") @Ready public void onReady(final AtmosphereResource resource) { Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
@ManagedService(path = "/chat/{userId}")
@Ready
public void onReady(final AtmosphereResource resource) {
Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
broadcaster.addAtmosphereResource(resource);
}
@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 : "));
}
当他们连接时,他们会像这样在广播公司注册
@ManagedService(path = "/chat/{userId}")
@Ready
public void onReady(final AtmosphereResource resource) {
Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
broadcaster.addAtmosphereResource(resource);
}
@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 : "));
}
例如,当我想从REST端点发送消息时,我是这样做的
@ManagedService(path = "/chat/{userId}")
@Ready
public void onReady(final AtmosphereResource resource) {
Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(userId,true);
broadcaster.addAtmosphereResource(resource);
}
@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 : "));
}
当我使用websocket实现时,它工作得非常好。
当我更改为长轮询并调用此REST方法时,只发送第一条消息,其他消息将被忽略,没有任何错误或日志。
在这种情况下我能做什么