Files
smart-rgb-esp32/lib/communication/mqtt.h

26 lines
924 B
C
Raw Permalink Normal View History

2025-08-03 00:34:05 +02:00
#pragma once
#include <string>
#include <functional>
#include <map>
typedef std::function<void(uint8_t*, int)> MqttCallback;
class Mqtt {
public:
static void connect(std::string brokerIp, uint16_t brokerPort, std::string clientId, std::string username="mqtt", std::string password="mqtt");
static void poll();
static void checkConnection();
static void publish(const std::string& topic, const std::string& payload, bool retain = false);
static void subscribe(const std::string& topic, MqttCallback callback);
static void mqttCb(char* topic, uint8_t* payload, unsigned int length);
private:
static std::string brokerIp;
static uint16_t brokerPort;
static std::string clientId;
static std::string username;
static std::string password;
static bool initialized;
static bool isConnected;
static std::map<std::string, MqttCallback> callbacks;
};