mosquitto软件编程

简介: mosquitto软件编程

使用mosquitto库函数前,要先初始化,使用之后要清除:


int mosquitto_lib_init(void);
int mosquitto_lib_cleanup();


  /*新建客户端*/    
struct mosquitto *mosquitto_new(    
const char *id,//用户自定义标识ID    
bool clean_session,//断开后是否保留订阅信息
true/false    void *userdata//回调参数    
);
      *释放客户端*/
 void mosquitto_destroy(struct mosquitto *mosq);


参考接口函数:


20200321205911213.png


订阅:


//订阅
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
#include <mosquitto.h>
#include <time.h>
// 消息回调
void my_message_callback(struct mosquitto *mosq, void *obj, const \                
        struct mosquitto_message *msg)
{    
time_t t;    
struct tm *lt;                                                                                                            printf("%d:topic(%s)->%s\n",__LINE__,(char *)msg->topic,\                
        (char *)msg->payload);
}
int main(int argc,char *argv[]){                                                                                                                             struct mosquitto *m_hMqtt;    
char *topic1 = "temp";
//初始化lib库函数    
mosquitto_lib_init();    
// 定义一个客户端名为subtest的发布端。客户端表示订阅端的唯一性    
m_hMqtt = mosquitto_new("subdemo", true, "data");        
//订阅回调                                                                                                           mosquitto_message_callback_set(m_hMqtt, my_message_callback);        
//连接服务器(代理器)    
mosquitto_connect(m_hMqtt, "49.232.150.163", 1883, 2);    
//订阅消息    
mosquitto_subscribe(m_hMqtt,NULL,topic1,1);    
/* 阻塞等待 */    
mosquitto_loop_start(m_hMqtt);       
mosquitto_loop_stop(m_hMqtt, false);    
mosquitto_destroy(m_hMqtt);    
mosquitto_lib_cleanup();    
return 0;
}


发布:


//发布
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
#include <mosquitto.h>
#include <time.h>
int main(int argc,char *argv[]){                                                                                                                             struct mosquitto *m_hMqtt;    
char *topic1 = "temp";    
char *content = "27.5";        
//初始化lib库函数    
mosquitto_lib_init();    
// 定义一个客户端名为subtest的发布端。客户端表示订阅端的唯一性    
m_hMqtt = mosquitto_new("pubdemo", true, "data");       
mosquitto_connect(m_hMqtt, "49.232.150.163",1883, 2);
mosquitto_publish(m_hMqtt,NULL,topic1,strlen(content)+1,content,1,true);        
mosquitto_destroy(m_hMqtt);    
mosquitto_lib_cleanup();   
return 0;
 }
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
8月前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
263 3
|
8月前
|
Linux 编译器 Shell
Linux嵌入式系统之Linux嵌入式系统之交叉编译中gcc编译器的工作流程
Linux嵌入式系统之Linux嵌入式系统之交叉编译中gcc编译器的工作流程
75 0
|
8月前
|
传感器 监控 网络协议
C# | 上位机开发新手指南(二)上位机通信
在上位机开发中,串口通信和TCP通信是两种常见的通信方式。串口通信是指通过串口将数据发送和接收到控制器或其他外设中,TCP通信则是通过网络将数据传输到远程设备中。下面介绍一下为什么学习串口通信和TCP通信在上位机开发中是很重要的。
658 0
C# | 上位机开发新手指南(二)上位机通信
|
XML 物联网 C语言
MQTT_mosquitto 老版本移植受阻 | 学习笔记
快速学习 MQTT_mosquitto 老版本移植受阻
MQTT_mosquitto 老版本移植受阻 | 学习笔记
|
存储 Java 数据安全/隐私保护
嵌入式开发学习之--串口通讯(下)
嵌入式开发学习之--串口通讯(下)
嵌入式开发学习之--串口通讯(下)
|
芯片 开发者
嵌入式开发学习之--串口通讯(上)
嵌入式开发学习之--串口通讯(上)
嵌入式开发学习之--串口通讯(上)
|
物联网 编译器 Linux
MQTT-mosquitto 嵌入式移植问题 | 学习笔记
快速学习 MQTT-mosquitto 嵌入式移植问题
MQTT-mosquitto 嵌入式移植问题 | 学习笔记
|
安全 物联网 网络安全
MQTT-mosquitto 嵌入式移植问题解决及环境配置 | 学习笔记
快速学习 MQTT-mosquitto 嵌入式移植问题解决及环境配置
MQTT-mosquitto 嵌入式移植问题解决及环境配置 | 学习笔记
|
Ubuntu Linux 开发工具
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发(一)
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发
641 0
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发(一)
|
Ubuntu Linux 开发工具
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发(二)
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发
254 0
ZYNQ - 嵌入式Linux开发 -08- linux应用程序开发(二)