实现MQTT客户端的功能,包括初始化、连接、消息接收和断开连接等操作。
更多...
#include <mosquitto.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <stdbool.h>
浏览该文件的源代码.
实现MQTT客户端的功能,包括初始化、连接、消息接收和断开连接等操作。
- 作者
- Kozakemi (kemik.nosp@m.oza@.nosp@m.gmail.nosp@m..com)
- 日期
- 2025-02-14
- 版权所有
- Copyright (c) 2025 Kozakemi
- 功能描述
- 初始化MQTT客户端。
- 连接到MQTT代理。
- 设置回调函数以处理连接、消息接收和断开连接事件。
- 启动一个线程来处理MQTT消息循环。
- 提供启动和停止MQTT客户端的接口。
- 用法描述
- 调用
start_mqtt_client() 函数启动MQTT客户端。
- 调用
stop_mqtt_client() 函数停止MQTT客户端。
- 修改日志:
| Date | Version | Author | Description |
| 2025-02-14 | 1.0 | Kozakemi | 初始版本,实现MQTT客户端的基本功能。 |
在文件 mqtt_client.c 中定义.
◆ MQTT_BROKER_ADDR
| #define MQTT_BROKER_ADDR "119.91.109.180" |
◆ MQTT_BROKER_PORT
| #define MQTT_BROKER_PORT 9501 |
◆ MQTT_USE_ID
| #define MQTT_USE_ID "703e13100a3d43b6b4abbb628b3c3d89" |
◆ mqtt_init()
◆ mqtt_is_connected()
| bool mqtt_is_connected |
( |
| ) |
|
◆ mqtt_thread()
| *static void * mqtt_thread |
( |
void * | arg | ) |
|
|
static |
◆ on_connect_callback()
| static void on_connect_callback |
( |
struct mosquitto * | mqtt, |
|
|
void * | obj, |
|
|
int | reason_code ) |
|
static |
连接成功回调
- 参数
-
| {struct | mosquitto *} mqtt |
| {void | *} obj |
| {int} | reason_code |
在文件 mqtt_client.c 第 48 行定义.
◆ on_disconnect_callback()
| static void on_disconnect_callback |
( |
struct mosquitto * | mqtt, |
|
|
void * | obj, |
|
|
int | reason_code ) |
|
static |
连接短肽回调
- 参数
-
| {struct | mosquitto *} mqtt |
| {void | *} obj |
| {int} | reason_code |
在文件 mqtt_client.c 第 78 行定义.
◆ on_message_callback()
| static void on_message_callback |
( |
struct mosquitto * | mqtt, |
|
|
void * | obj, |
|
|
const struct mosquitto_message * | msg ) |
|
static |
接收消息回调
- 参数
-
| {struct | mosquitto *} mqtt |
| {void | *} obj |
| {const | struct mosquitto_message *} msg |
在文件 mqtt_client.c 第 65 行定义.
◆ start_mqtt_client()
| int start_mqtt_client |
( |
| ) |
|
◆ stop_mqtt_client()
| void stop_mqtt_client |
( |
| ) |
|
◆ is_connected
| bool is_connected = false |
◆ mqtt
| struct mosquitto* mqtt = NULL |
◆ mqtt_thread_id