start method
Implementation
Future<bool> start() async {
final success = await wsConnect();
if(!success) {
return false;
}
final completer = Completer<bool>();
Future.delayed(const Duration(seconds: 10), () { // timeout
print ("completer.isCompleted #3: ${completer.isCompleted}");
if (!completer.isCompleted) {
logger("Could not connect the websocket, because of the timeout of 10 seconds");
completer.complete(false);
}
});
print ("completer.isCompleted #1: ${completer.isCompleted}");
wsListen((data) {
_lastPongFromServer = DateTime.now().millisecondsSinceEpoch;
if (!completer.isCompleted) {
completer.complete(true);
}
ClientReceived.from(data).handle();
}, onError: (err) {
logger("middleware: channel.stream.listen onError", level: Level.error, additionalData: err.toString());
}, onDone: () {
_handleConnectionClosed();
if (!completer.isCompleted) {
completer.complete(false);
}
});
wsHandleError((err) {
logger("channel handleError", additionalData: err, level: Level.error);
});
return completer.future;
}