[#39] Protocol settings. Saving settings improvement

This commit is contained in:
estevez
2018-09-16 21:27:16 +03:00
parent c20fa12c3d
commit fa40a23b4b
3 changed files with 33 additions and 23 deletions

View File

@ -37,8 +37,8 @@ class HassioDataModel {
} else {
//Fetch timeout timer
_fetchingTimer = Timer(Duration(seconds: 10), () {
_fetchCompleter.completeError({"message": "Data fetching timeout."});
closeConnection();
_fetchCompleter.completeError({"message": "Data fetching timeout."});
});
_fetchCompleter = new Completer();
_reConnectSocket().then((r) {
@ -51,11 +51,11 @@ class HassioDataModel {
return _fetchCompleter.future;
}
void closeConnection() {
if (_hassioChannel != null) {
_hassioChannel.sink.close();
_hassioChannel = null;
closeConnection() {
if (_hassioChannel?.closeCode == null) {
_hassioChannel.sink?.close();
}
_hassioChannel = null;
}
Future _reConnectSocket() {
@ -64,7 +64,7 @@ class HassioDataModel {
debugPrint("Socket connecting...");
_hassioChannel = IOWebSocketChannel.connect(_hassioAPIEndpoint);
_hassioChannel.stream.handleError((e) {
debugPrint("Socket error: ${e.toString()}");
debugPrint("Unhandled socket error: ${e.toString()}");
});
_hassioChannel.stream.listen((message) =>
_handleMessage(_connectionCompleter, message));
@ -93,11 +93,8 @@ class HassioDataModel {
var data = json.decode(message);
debugPrint("[Received]Message type: ${data['type']}");
if (data["type"] == "auth_required") {
debugPrint(" sending auth!");
_sendMessageRaw('{"type": "auth","api_password": "$_hassioPassword"}');
} else if (data["type"] == "auth_ok") {
debugPrint(" auth done");
debugPrint("Connection done.");
_sendSubscribe();
connectionCompleter.complete();
} else if (data["type"] == "auth_invalid") {