Я подключаюсь к конечной точке веб-сокета, используя http://aiohttp.readthedocs.io/en/stable/ WebsocketProtocol по умолчанию и ни с того ни с сего (после некоторое время и несколько итераций бесконечного цикла) я всегда получаю WSMsgType.ERROR
с EofStream
в качестве данных. В моем понимании, такого быть не должно. Я пытался исследовать, как с этим бороться, но безуспешно. Должен ли я просто закрыть и снова подключиться к конечной точке? Есть ли способ гарантировать, что этого не произойдет? Должен ли я реализовать определенный алгоритм обработки?
Обработка веб-сокета aiohttp EOfStream
Ответы (1)
Это означает, что соединение закрыто узлом. Интернет — нестабильный транспорт, всегда нужно быть готовым к таким ситуациям. Обычно в таких случаях помогает переподключение.
person
Andrew Svetlov
schedule
01.11.2017
Разве я не должен сначала получить сообщение CLOSE WSMsgType?
- person Exa; 02.11.2017
Это зависит. Закрытие отправляется стандартным отключением, инициированным узлом. Проблемы с сетью могут не сигнализироваться CLOSE. Вот как работает протокол TCP, проблема не только в веб-сокетах.
- person Andrew Svetlov; 02.11.2017