【问题标题】:Ktor sse client disconnectKtor sse 客户端断开连接
【发布时间】:2019-12-07 22:17:40
【问题描述】:

Ktor 支持服务器端事件,因为我可以使用文本/服务器事件内容类型。它工作得很好,但是在客户端断开连接时,例如浏览器窗口关闭/手动关闭调用,它仍然会继续发送事件,因为它不会检测到断开连接,直到下一个事件,它会抛出异常。有什么方法可以在 ktor 请求中获取客户端断开连接的事件,以便我们可以停止发送服务器端事件并清理资源?

【问题讨论】:

    标签: kotlin server-sent-events ktor


    【解决方案1】:

    Websocket Ktor 实现有pinger 扩展,它对websockets 做同样的事情。所以我认为这对 SSE 来说是完全有效的。我认为最好在这里提交功能请求https://youtrack.jetbrains.com/issues/KTOR

    当我们在生产环境中使用 Ktor 中的 SSE 时,我们将 ping 客户端实现为后台协程。它只是每 30 秒发送一次空事件,如果失败,连接将被关闭。当用户断开连接但服务器仍然保持连接时,它可以防止连接泄漏。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2010-11-01
      • 2017-07-17
      • 2021-12-05
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多