Ktor sse 客户端断开连接
Posted
技术标签:
【中文标题】Ktor sse 客户端断开连接【英文标题】:Ktor sse client disconnect 【发布时间】:2019-12-07 22:17:40 【问题描述】:Ktor 支持服务器端事件,因为我可以使用文本/服务器事件内容类型。它工作得很好,但是在客户端断开连接时,例如浏览器窗口关闭/手动关闭调用,它仍然会继续发送事件,因为它不会检测到断开连接,直到下一个事件,它会抛出异常。有什么方法可以在 ktor 请求中获取客户端断开连接的事件,以便我们可以停止发送服务器端事件并清理资源?
【问题讨论】:
【参考方案1】:Websocket Ktor 实现有pinger
扩展,它对websockets 做同样的事情。所以我认为这对 SSE 来说是完全有效的。我认为最好在这里提交功能请求https://youtrack.jetbrains.com/issues/KTOR。
当我们在生产环境中使用 Ktor 中的 SSE 时,我们将 ping 客户端实现为后台协程。它只是每 30 秒发送一次空事件,如果失败,连接将被关闭。当用户断开连接但服务器仍然保持连接时,它可以防止连接泄漏。
【讨论】:
以上是关于Ktor sse 客户端断开连接的主要内容,如果未能解决你的问题,请参考以下文章