2017-11-01 10 views
2

Handhabung Ich bin eine Verbindung zu einem Endpunkt websocket mit aiohttp's Standard WebsocketProtocol und aus heiterem Himmel (nach einiger Zeit und mehr Endlosschleife Iterationen) bekomme ich WSMsgType.ERROR immer mit EofStream als Daten. Nach meinem Verständnis sollte dies nicht passieren. Ich habe versucht herauszufinden, wie ich damit umgehen soll, bin aber relativ erfolglos. Sollte ich nur schließen und wieder mit dem Endpunkt verbinden? Gibt es eine Möglichkeit, dies zu verhindern? Soll ich einen bestimmten Handling-Algorithmus implementieren?aiohttp websocket EOfStream

Antwort

1

Es bedeutet Verbindung durch Peer geschlossen. Internet ist instabil Transport, Sie sollten immer auf solche Situationen vorbereitet sein. Normalerweise hilft die Wiederverbindung in solchen Fällen.

+0

Sollte ich nicht zuerst eine CLOSE WSMsgType-Nachricht bekommen? – Exa

+0

Kommt drauf an. Schließen wird durch Standardtrennung gesendet, die von Peer initiiert wurde. Netzwerkprobleme werden möglicherweise nicht durch CLOSE signalisiert. So funktioniert das TCP-Protokoll, das Problem ist nicht spezifisch für Websockets. –