connect method
Connect
Implementation
@override
Future<MqttConnectionStatus?> connect(String server, int port) {
final completer = Completer<MqttConnectionStatus?>();
MqttLogger.log('MqttNormalConnection::connect- entered');
try {
// Connect and save the socket.
Socket.connect(server, port, timeout: socketTimeout)
.then((dynamic socket) {
// Socket options
final applied = _applySocketOptions(socket, socketOptions);
if (applied) {
MqttLogger.log(
'MqttNormalConnection::connect - socket options applied',
);
}
client = socket;
_startListening();
completer.complete();
})
.catchError((dynamic e) {
if (_isSocketTimeout(e)) {
final message =
'MqttNormalConnection::connect - The connection to the message broker '
'{$server}:{$port} could not be made, a socket timeout has occurred';
MqttLogger.log(message);
completer.complete();
} else {
onError(e);
completer.completeError(e);
}
});
} on Exception catch (e, stack) {
completer.completeError(e);
final message =
'MqttNormalConnection::The connection to the message '
'broker {$server}:{$port} could not be made.';
Error.throwWithStackTrace(MqttNoConnectionException(message), stack);
}
return completer.future;
}