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
相关文章
|
6天前
|
运维 安全 Linux
【超实用秘籍】Linux文件传输新高度:10个scp命令让你瞬间变身文件传输达人,从此告别繁琐操作!
【8月更文挑战第13天】文件传输是运维工作的核心部分,尤其对Linux用户来说,了解高效且安全的传输方法非常重要。本文介绍10种scp命令的应用技巧,涵盖基础文件传输、密钥认证、目录复制等场景,助你灵活运用这一基于SSH协议的安全工具。从简单的文件传输到复杂的多主机文件迁移,scp都能轻松应对。通过本文的学习,你将能更熟练地使用scp命令,提高工作效能。
24 6
|
3月前
|
Linux 编译器 Shell
Linux嵌入式系统之Linux嵌入式系统之交叉编译中gcc编译器的工作流程
Linux嵌入式系统之Linux嵌入式系统之交叉编译中gcc编译器的工作流程
49 0
|
12月前
|
Shell Linux C++
【Linux取经路】解析环境变量,提升系统控制力(二)
【Linux取经路】解析环境变量,提升系统控制力(二)
41 0
|
XML 物联网 C语言
MQTT_mosquitto 老版本移植受阻 | 学习笔记
快速学习 MQTT_mosquitto 老版本移植受阻
126 0
MQTT_mosquitto 老版本移植受阻 | 学习笔记
|
12月前
|
存储 算法 Linux
【Linux取经路】解析环境变量,提升系统控制力(一)
【Linux取经路】解析环境变量,提升系统控制力(一)
79 0
Freeswitch视频会议终于成功,及提供解决办法
Freeswitch视频会议终于成功,及提供解决办法
384 0
Win系统 - 问题集
Win系统 - 问题集
64 0
|
Java 关系型数据库 应用服务中间件
服务器软件大扫盲
服务器软件大扫盲
134 0
|
Java 数据格式 数据安全/隐私保护