phi*_*her 3 heroku node.js server-sent-events
我有一个 NodeJS 应用程序,它使用服务器发送事件 (SSE) 路由将更新从服务器发送到客户端。在我的本地开发环境中,这非常有效,因为客户端始终保持与 SSE 路由的连接,并在断开连接时尝试立即重新连接。
\n\n然而,当我将应用程序部署到 Heroku 后,一切都出了问题。在不通过 SSE 路由发送任何数据的几秒钟内,我503 Service Unavailable在客户端收到错误,并且客户端失去了与服务器的连接,因此无法接收更多实时更新。查看 Heroku 服务器日志,它给了我一个H12 Request Timeout错误。
经过进一步研究,我在 Heroku 网站上看到了这篇文章:
\n\n\n\n\n如果您\xe2\x80\x99 正在发送流式响应,例如服务器发送\n 事件,则\xe2\x80\x99 将需要检测客户端何时挂起,并确保\n 您的应用服务器关闭及时连接。如果服务器\n 使连接保持打开状态55 秒而不发送任何数据,\n 您\n\xe2\x80\x99 将看到请求超时。
\n
但是,它没有提及如何解决该问题。
\n\n从 Heroku 收到此信息:
我希望能给您带来更好的消息,但不幸的是,除了每 55 秒内发送 ping 一次以保持 SSE 持久性之外,您无法采取任何措施来避免这种情况。
不幸的是,Heartbeat 是 Heroku 保持 SSE 路由存活的唯一方法。
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |