connectAckProcessor method
Processes the connect acknowledgement message.
Implementation
@protected
bool connectAckProcessor(MqttMessage msg) {
MqttLogger.log('MqttConnectionHandlerBase::_connectAckProcessor');
try {
final ackMsg = msg as MqttConnectAckMessage;
// Drop the connection if our connect request has been rejected.
if (ackMsg.variableHeader.returnCode ==
MqttConnectReturnCode.brokerUnavailable ||
ackMsg.variableHeader.returnCode ==
MqttConnectReturnCode.identifierRejected ||
ackMsg.variableHeader.returnCode ==
MqttConnectReturnCode.unacceptedProtocolVersion ||
ackMsg.variableHeader.returnCode ==
MqttConnectReturnCode.notAuthorized ||
ackMsg.variableHeader.returnCode ==
MqttConnectReturnCode.badUsernameOrPassword) {
MqttLogger.log('MqttConnectionHandlerBase::_connectAckProcessor '
'connection rejected');
connectionStatus.returnCode = ackMsg.variableHeader.returnCode;
_performConnectionDisconnect();
} else {
// Initialize the keepalive to start the ping based keepalive process.
MqttLogger.log('MqttConnectionHandlerBase:_connectAckProcessor '
'- state = connected');
connectionStatus.state = MqttConnectionState.connected;
connectionStatus.returnCode = MqttConnectReturnCode.connectionAccepted;
// Call the connected callback if we have one
if (onConnected != null) {
onConnected!();
}
}
} on Exception {
_performConnectionDisconnect();
}
// Cancel the connect timer;
MqttLogger.log('MqttConnectionHandlerBase:: cancelling connect timer');
connectTimer.cancel();
return true;
}