青岛的互联网企业,搜索引擎优化seo网站,wordpress 页面 html,施工企业组织目标1 说明
采用 mosquitto 库#xff0c;实现对主题发布消息。 其中服务器有做限制#xff0c;需要对应的 cilent id #xff0c;cafile 、certfile 、keyfile 等配置
2 开发环境
采用ubuntu 直接编译调试 安装mosquitto 库
sudo apt install libmosquitto-dev
sudo apt-ge…1 说明
采用 mosquitto 库实现对主题发布消息。 其中服务器有做限制需要对应的 cilent id cafile 、certfile 、keyfile 等配置
2 开发环境
采用ubuntu 直接编译调试 安装mosquitto 库
sudo apt install libmosquitto-dev
sudo apt-get install mosquitto3 参考代码
每隔2秒发布一次消息, 代码存为文件mqtt_publisher.c
#include stdio.h
#include stdlib.h
#include string.h
#include unistd.h
#include mosquitto.h#define MQTT_HOST akhrsh85xmt1q-ats.iot.us-east-1.amazonaws.com
#define MQTT_PORT 8883
#define MQTT_TOPIC aws/rules/funcResponse_v1_1/WoSweeperOrigin/1A2023040002/funcResponse
#define MQTT_CERT_PATH /home/sky/develop/test/mosqito/cert.pem
#define MQTT_KEY_PATH /home/sky/develop/test/mosqito/key.pem
#define MQTT_CA_PATH /home/sky/develop/test/mosqito/ca.pem
#define MQTT_CLIENT_ID ID_666int main(int argc, char *argv[])
{struct mosquitto *mosq NULL;int rc 0;int i 0;// 初始化 mosquitto 库mosquitto_lib_init();// 创建 mosquitto 客户端实例mosq mosquitto_new(MQTT_CLIENT_ID, true, NULL);if (!mosq) {printf(Failed to create mosquitto instance.\n);return 1;}// 设置 TLS 证书rc mosquitto_tls_set(mosq, MQTT_CA_PATH, NULL, MQTT_CERT_PATH, MQTT_KEY_PATH, NULL);if (rc ! MOSQ_ERR_SUCCESS) {printf(Failed to set TLS certificate.\n);return 1;}// 连接 MQTT 服务器rc mosquitto_connect(mosq, MQTT_HOST, MQTT_PORT, 60);if (rc ! MOSQ_ERR_SUCCESS) {printf(Failed to connect to MQTT server.\n);return 1;}for(i 0; i 10; i){char message[50];sprintf(message, Message %d, i1);printf(%s %s %d [%d/10], send message:%s\n, __FILE__, __func__, __LINE__, i, message);rc mosquitto_publish(mosq, NULL, MQTT_TOPIC, strlen(message), message, 0, false);if(rc ! MOSQ_ERR_SUCCESS){fprintf(stderr, Error: Could not publish message. %s\n, mosquitto_strerror(rc));}rc mosquitto_loop(mosq, -1, 1);if (rc ! MOSQ_ERR_SUCCESS) {printf(Failed to process messages.\n);break;}sleep(2);}mosquitto_disconnect(mosq);mosquitto_destroy(mosq);mosquitto_lib_cleanup();return 0;
}对应的makefile
all: mqtt_publishermqtt_publisher: mqtt_publisher.ogcc -o mqtt_publisher mqtt_publisher.o -lmosquittomqtt_publisher.o: mqtt_publisher.cgcc -c mqtt_publisher.cclean:rm -f mqtt_publisher mqtt_publisher.o4 调试
skyubuntu:~/develop/test/mosqito$ make
gcc -c mqtt_publisher.c
gcc -o mqtt_publisher mqtt_publisher.o -lmosquitto运行
skyubuntu:~/develop/test/mosqito$ ./mqtt_publisher
mqtt_publisher.c main 49 [0/10], send message:Message 1
mqtt_publisher.c main 49 [1/10], send message:Message 2
mqtt_publisher.c main 49 [2/10], send message:Message 3
mqtt_publisher.c main 49 [3/10], send message:Message 4
mqtt_publisher.c main 49 [4/10], send message:Message 5
mqtt_publisher.c main 49 [5/10], send message:Message 6
mqtt_publisher.c main 49 [6/10], send message:Message 7网页端查看