diff --git a/PubSubClient/PubSubClient.cpp b/PubSubClient/PubSubClient.cpp index 2167585..83366b9 100644 --- a/PubSubClient/PubSubClient.cpp +++ b/PubSubClient/PubSubClient.cpp @@ -5,8 +5,8 @@ */ #include "PubSubClient.h" -#include "EthernetClient.h" -#include "string.h" +#include +#include PubSubClient::PubSubClient() : _client() { } @@ -16,13 +16,28 @@ PubSubClient::PubSubClient(uint8_t *ip, uint16_t port, void (*callback)(char*,ui this->ip = ip; this->port = port; } + +PubSubClient::PubSubClient(char* domain, uint16_t port, void (*callback)(char*,uint8_t*,unsigned int)) : _client() { + this->callback = callback; + this->domain = domain; + this->port = port; +} + boolean PubSubClient::connect(char *id) { return connect(id,0,0,0,0); } boolean PubSubClient::connect(char *id, char* willTopic, uint8_t willQos, uint8_t willRetain, char* willMessage) { if (!connected()) { - if (_client.connect(this->ip, this->port)) { + int result = 0; + + if (domain != NULL) { + result = _client.connect(this->domain, this->port); + } else { + result = _client.connect(this->ip, this->port); + } + + if (result) { nextMsgId = 1; uint8_t d[9] = {0x00,0x06,'M','Q','I','s','d','p',MQTTPROTOCOLVERSION}; uint8_t length = 0; diff --git a/PubSubClient/PubSubClient.h b/PubSubClient/PubSubClient.h index 9b740e2..641e4a1 100644 --- a/PubSubClient/PubSubClient.h +++ b/PubSubClient/PubSubClient.h @@ -51,10 +51,12 @@ private: boolean write(uint8_t header, uint8_t* buf, uint16_t length); uint16_t writeString(char* string, uint8_t* buf, uint16_t pos); uint8_t *ip; + char* domain; uint16_t port; public: PubSubClient(); PubSubClient(uint8_t *, uint16_t, void(*)(char*,uint8_t*,unsigned int)); + PubSubClient(char*, uint16_t, void(*)(char*,uint8_t*,unsigned int)); boolean connect(char *); boolean connect(char*, char*, uint8_t, uint8_t, char*); void disconnect();