如何使用javascript客户端关闭与sse flux的连接?
我用SpringWebFlux构建了一个服务器发送事件端点。我的javascript应用程序订阅该端点并正确接收已发布的事件。但是什么时候打电话如何使用javascript客户端关闭与sse flux的连接?,javascript,java,spring,server-sent-events,reactor,Javascript,Java,Spring,Server Sent Events,Reactor,我用SpringWebFlux构建了一个服务器发送事件端点。我的javascript应用程序订阅该端点并正确接收已发布的事件。但是什么时候打电话 EventSource.close()似乎没有通知发布者客户端已关闭连接 因此,发布者仍然认为存在订阅,并向该订阅发布事件 事件流可能永远不会结束,因此我从未在发布服务器端获得完整的信号,这意味着客户端必须关闭连接 我认为这是因为close()调用无法到达底层通量 你有解决这个问题的办法吗 @GetMapping(value=INSTANCE\u UP
EventSource.close()
似乎没有通知发布者客户端已关闭连接
因此,发布者仍然认为存在订阅,并向该订阅发布事件
事件流可能永远不会结束,因此我从未在发布服务器端获得完整的信号,这意味着客户端必须关闭连接
我认为这是因为close()调用无法到达底层通量
你有解决这个问题的办法吗
@GetMapping(value=INSTANCE\u UPDATE\u ENDPOINT+“/{dealId}”,products=MediaType.TEXT\u EVENT\u STREAM\u value)
公共流量getInstanceUpdateEventStreamForDeal(@PathVariable最终字符串dealId){
返回此值。instanceUpdatedApplicationEventFlux
.filter(InstanceUpdateEvent->InstanceUpdateEvent.getDealId().equals(dealId))
.map(InstanceUpdateEvent->ServerSentEvent.builder()
.id(instanceUpdateEvent.getId())
.重试(持续时间秒(1))
.data(新InstanceUpdatedQuery(instanceUpdatedEvent))
.build())
}
您应该添加一个处理程序来捕获doOnNext(信号),然后检测关闭信号并对其作出响应您应该添加一个处理程序来捕获doOnNext(信号),然后检测关闭信号并对其作出响应