我实施了类似泽西岛example的泽西SSE广播服务:
@GET
@Produces(SseFeature.SERVER_SENT_EVENTS)
public EventOutput listenToBroadcast() {
final EventOutput eventOutput = new EventOutput();
this.broadcaster.add(eventOutput);
return eventOutput;
}
第一个客户端连接没有问题,但是对于所有其他客户端,连接到服务至少需要10秒。延迟发生在客户端请求到达我的代码之前。客户端最终连接后,它开始正常接收事件。 只有在注册期间没有已连接的客户端时才会出现连接延迟。
然后使用Java客户端立即建立连接,但Chrome由于某种原因需要很长时间才能连接并开始接收消息。
有任何想法如何解决这个问题?
我使用的是Jersey 2.24,Tomcat 8.5.9和Java 8