Как только я начал использовать каналы с Phoenix, я начал получать много следующих ошибок на 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=
Надежный способ воспроизвести это на ноутбуке:
- Откройте страницу Phoenix, которая подключается к WebSockets.
- Закройте крышку ноутбука
- Подождите минуту или около того (Wi-Fi отключается / ОС переходит в спящий режим)
- Произойдет ошибка H15.
Я уже установил тайм-аут в 45 секунд для своего UserChannel; Я использую Elixir 1.4.2
, Phoenix 1.2.1
, и мой phoenix.js
был только что обновлен до того, который использовался в Phoenix 1.3.0-rc0
(ссылка на версию)
Я вижу ошибку, зарегистрированную в интерфейсе пользователя, но после этого он успешно подключается к серверу:
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)
Любая помощь или идеи, как решить эту проблему, приветствуются.
Изменить: я знаком с H15 от Heroku определение кода ошибки, поэтому я ищу исправление или обходной путь для избавления от ошибок (кроме перехода с Heroku, конечно).