一旦我开始在 Phoenix 中使用 Channels,我就开始在 Heroku 上遇到很多这样的错误:
heroku[router]: at=error code=H15 desc="Idle connection" method=GET
path="/socket/websocket?guardian_token=eyJhbGciOiJIUz[...]&vsn=1.0.0" host=[...]
dyno=web.1 connect=0ms service=87803ms status=503 bytes=
重现此问题的可靠方法是在笔记本电脑上:
- 打开连接到 WebSockets 的 Phoenix 页面
- 合上笔记本电脑的盖子
- 等待一分钟左右(WiFi 断开/操作系统进入睡眠状态)
- 将发生 H15 错误。
我已经在我的 UserChannel 上设置了 45 秒的超时时间;我正在运行 Elixir 1.4.2
,Phoenix1.2.1
和我phoenix.js
刚刚升级到 Phoenix 中使用的那个1.3.0-rc0
(链接到 rev)
我可以看到前端记录的错误,但之后它会愉快地重新连接到后端:
2017-03-04 23:28:55.351 receive: ok user:2 phx_reply (3)
2017-03-04 23:29:24.269 channel: error user:2
2017-03-04 23:29:28.713 push: user:2 phx_join (4)
2017-03-04 23:29:28.745 receive: ok user:2 phx_reply (4)
非常感谢如何解决此问题的任何帮助或想法。
编辑:我熟悉 Heroku 的H15 错误代码定义,所以我正在寻找修复或解决方法来消除错误(当然,除了从 Heroku 迁移之外)。