Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was trying to use this with the
WiFiClientSecure
Client for ESP32 where I need to call itsconnect
function manually because it has a non-standard overload to support the TLS/SSL stuff:client.connect(DOMAIN, PORT, CA_CERT, CLIENT_CERT, PRIVATE_KEY);
However, if I use this pre-connected Client with PubSubClient, the latter's connect call will be basically skipped because
pubsub.connected
returns true when the underlying Client is connected, disregarding the it's own internal MQTT state.In order to make it work with a pre-connected Client, I did 2 things:
connected
, double check the internal MQTT state isMQTT_CONNECTED
, after checking the underlying Client is connectedconnect
, skip the underlying Client'sconnect
call if it is already connected.P.S. It is not needed to call
setServer
if the underlying Client is manually connected.