首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript-client关闭与sse flux的连接?

如何使用javascript-client关闭与sse flux的连接?
EN

Stack Overflow用户
提问于 2019-07-07 17:28:01
回答 1查看 356关注 0票数 1

我用spring webflux构建了一个server-send-event端点。我的javascript应用程序订阅该端点,并正确接收发布的事件。但是当调用EventSource.close()时,发布者似乎没有被告知客户端关闭了连接。

因此,发布者仍然认为存在订阅,并将事件发布到该订阅。

事件流可能永远不会结束,因此我永远不会在发布者端得到完整的信号,这意味着客户端必须关闭连接。

我认为发生这种情况是因为close()调用不能到达底层的flux。

对于此问题,您有什么解决方案或变通方法吗?

代码语言:javascript
复制
@GetMapping(value = INSTANCE_UPDATE_ENDPOINT + "/{dealId}", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ServerSentEvent<InstanceUpdatedQuery>> getInstanceUpdateEventStreamForDeal(@PathVariable final String dealId) {

       return this.instanceUpdatedApplicationEventFlux
               .filter(instanceUpdatedEvent -> instanceUpdatedEvent.getDealId().equals(dealId))
               .map(instanceUpdatedEvent -> ServerSentEvent.<InstanceUpdatedQuery>builder()
                       .id(instanceUpdatedEvent.getId())
                       .retry(Duration.ofSeconds(1))
                       .data(new InstanceUpdatedQuery(instanceUpdatedEvent))
                       .build())
}
EN

回答 1

Stack Overflow用户

发布于 2019-07-10 03:11:25

您应该添加一个处理程序来捕获doOnNext(信号),然后检测关闭信号并对其做出响应

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56920887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档