Fix timeout handling on socket message send

This commit is contained in:
Yegor Vialov 2019-11-29 11:24:29 +00:00
parent dd5f8b155d
commit 6f3a2bb78d

View File

@ -324,17 +324,12 @@ class ConnectionManager {
_messageResolver[callbackName] = _completer;
String rawMessage = json.encode(dataObject);
if (!isConnected) {
//TODO fix onTImeout
_connect().timeout(connectTimeout, onTimeout: (){
if (!_completer.isCompleted) {
_completer.completeError(HAError("No connection to Home Assistant", actions: [HAErrorAction.reconnect()]));
}
}).then((_) {
_connect().timeout(connectTimeout).then((_) {
Logger.d("[Sending] ==> ${auth ? "type="+dataObject['type'] : rawMessage}");
_socket.sink.add(rawMessage);
}).catchError((e) {
if (!_completer.isCompleted) {
_completer.completeError(e);
_completer.completeError(HAError("No connection to Home Assistant", actions: [HAErrorAction.reconnect()]));
}
});
} else {