当前位置:   JAVA > 正文

Java spring SseEmitter/ResponseBodyEmitter:检测浏览器重新加载

java,spring,服务器,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我在Java Spring中使用服务器端事件(SSE).每当新客户端订阅事件服务时,我在REST控制器上执行以下代码:

SseEmitter emitter = new SseEmitter(-1L);
emitter.onCompletion(() -> {
        logger.debug(TAG + "Emitter completed.");
        emitters.remove(emitter);
    });
return emitter;

然后,每当需要将事件通知给我执行的客户端时:

 for (ResponseBodyEmitter emitter: emitters) {
        emitter.send("Message #1");
 }

问题是当其中一个客户端重新加载浏览器时,发射器没有完成(正如我所料),并且在调用上面的代码时我得到一个损坏的管道异常.只有在触发此异常后,我才会看到发射器已完成.

有没有办法解决这个问题?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/JAVA/detail/10644
推荐阅读
相关标签
  

闽ICP备14008679号