first commit
This commit is contained in:
parent
0d22e2b95f
commit
7c095fe3b2
@ -1,3 +1,4 @@
|
|||||||
|
// mqtt_client.hpp
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -6,7 +7,7 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <mqtt/async_client.h>
|
#include <mqtt/async_client.h>
|
||||||
#include "mqtt_config.hpp"
|
#include "app_config.hpp"
|
||||||
|
|
||||||
class MQTTClient : public virtual mqtt::callback
|
class MQTTClient : public virtual mqtt::callback
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,12 +1,17 @@
|
|||||||
|
// mqtt_client_wrapper.hppa
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "mqtt_config.hpp"
|
#include "app_config.hpp"
|
||||||
#include "logger.hpp"
|
#include "logger.hpp"
|
||||||
#include "mqtt_client.hpp"
|
#include "mqtt_client.hpp"
|
||||||
|
#include <memory>
|
||||||
|
#include <atomic>
|
||||||
|
|
||||||
// 启动 MQTT 客户端(内部自动连接、订阅、发布等)
|
// 启动 MQTT 客户端线程(内部自动重连、订阅等)
|
||||||
void mqtt_client_thread_func();
|
void mqtt_client_thread_func();
|
||||||
|
|
||||||
// 外部可访问的 MQTT 客户端指针
|
// 外部可访问的 MQTT 客户端指针
|
||||||
extern std::shared_ptr<MQTTClient> mqtt_client;
|
extern std::shared_ptr<MQTTClient> mqtt_client;
|
||||||
|
|
||||||
|
// 请求 MQTT 客户端重启
|
||||||
extern std::atomic<bool> mqtt_restart_required;
|
extern std::atomic<bool> mqtt_restart_required;
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
// mqtt_client_wrapper.cpp
|
||||||
#include "mqtt_client_wrapper.hpp"
|
#include "mqtt_client_wrapper.hpp"
|
||||||
|
|
||||||
std::shared_ptr<MQTTClient> mqtt_client;
|
std::shared_ptr<MQTTClient> mqtt_client;
|
||||||
@ -9,7 +10,11 @@ static uint16_t broadcast_sequence = 0;
|
|||||||
static void on_mqtt_connected()
|
static void on_mqtt_connected()
|
||||||
{
|
{
|
||||||
LOG_INFO("[MQTT] Connected to broker.");
|
LOG_INFO("[MQTT] Connected to broker.");
|
||||||
mqtt_client->subscribe(g_mqtt_config.topics.downlink);
|
|
||||||
|
const auto &topics = g_app_config.mqtt.topics;
|
||||||
|
mqtt_client->subscribe(topics.video_down);
|
||||||
|
mqtt_client->subscribe(topics.substream_down);
|
||||||
|
mqtt_client->subscribe(topics.reset_down);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void on_mqtt_disconnected()
|
static void on_mqtt_disconnected()
|
||||||
@ -34,7 +39,8 @@ void mqtt_client_thread_func()
|
|||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
const auto &cfg = g_mqtt_config;
|
const auto &cfg = g_app_config;
|
||||||
|
|
||||||
mqtt_client = std::make_unique<MQTTClient>(cfg);
|
mqtt_client = std::make_unique<MQTTClient>(cfg);
|
||||||
mqtt_client->setConnectCallback(on_mqtt_connected);
|
mqtt_client->setConnectCallback(on_mqtt_connected);
|
||||||
mqtt_client->setDisconnectCallback(on_mqtt_disconnected);
|
mqtt_client->setDisconnectCallback(on_mqtt_disconnected);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user