ArduinoMqttClient icon indicating copy to clipboard operation
ArduinoMqttClient copied to clipboard

Does not compile on ESP8266 when calling connect() with port

Open ferdinand0815 opened this issue 8 months ago • 3 comments

The library fails to compile on ESP8266 when calling connect() with a port, as in mqttClient.connect(mqttBrokerIp, mqttPort).

error: call of overloaded 'connect(IPAddress&, uint16_t&)' is ambiguous

ArduinoMqttClient/src/MqttClient.h:82:15: note: candidate: 'virtual int MqttClient::connect(IPAddress, uint16_t)'
   82 |   virtual int connect(IPAddress ip, uint16_t port = 1883);
      |               ^~~~~~~
/home/ffelder/Arduino/libraries/ArduinoMqttClient/src/MqttClient.h:85:15: note: candidate: 'virtual int MqttClient::connect(const IPAddress&, uint16_t)'
   85 |   virtual int connect(const IPAddress& ip, uint16_t port) { return 0; }; /* ESP8266 core defines this pure virtual in Client.h */
      |               ^~~~~~~

This has actually already been fixed quite some time ago in this pull request https://github.com/arduino-libraries/ArduinoMqttClient/pull/33 by removing the ESP8266 specific code in MqttClient.h. I briefly tested the connect() using test.mosquitto.org, no idea about flush and stop.

ferdinand0815 avatar Jun 18 '24 12:06 ferdinand0815