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一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7月前
|
存储 安全 容灾
无盘软件-真正的折腾鼻祖
无盘软件-真正的折腾鼻祖
|
8月前
|
Shell 网络安全 网络虚拟化
[笔记]Windows使用OpenVpn构建虚拟局域网
[笔记]Windows使用OpenVpn构建虚拟局域网
363 0
|
XML 物联网 C语言
MQTT_mosquitto 老版本移植受阻 | 学习笔记
快速学习 MQTT_mosquitto 老版本移植受阻
116 0
MQTT_mosquitto 老版本移植受阻 | 学习笔记
|
缓存 网络协议 安全
基于TSUNG对MQTT进行压力测试-基础概念温习
基于TSUNG对MQTT进行压力测试-基础概念温习
181 0
|
Linux
Buildroot系列开发(四)Linux工具链剖析(下)
Buildroot系列开发(四)Linux工具链剖析
77 3
Buildroot系列开发(四)Linux工具链剖析(下)
|
存储 安全 算法
|
存储 安全 调度
|
Linux 开发工具
Buildroot系列开发(四)Linux工具链剖析(上)
Buildroot系列开发(四)Linux工具链剖析
124 0
Buildroot系列开发(四)Linux工具链剖析(上)
|
物联网 编译器 Linux
MQTT-mosquitto 嵌入式移植问题 | 学习笔记
快速学习 MQTT-mosquitto 嵌入式移植问题
1187 0
MQTT-mosquitto 嵌入式移植问题 | 学习笔记
|
Java 关系型数据库 应用服务中间件
服务器软件大扫盲
服务器软件大扫盲
128 0