使用mosquitto开发MQTT客户端
1. 下载并安装openSSL, mosquitto 应用程序运行时会用到
http://slproweb.com/products/Win32OpenSSL.html
2. 下载并安装mosquitto
http://mosquitto.org/download/
3. 使用
1)在cmd窗口中,启动Mosquito的MQTT服务
C:\Program Files\mosquitto>mosquitto
2)在另一个cmd窗口中,启动侦听通道程序
c:\Program Files\mosquitto> mosquitto_sub -t mytopic
3)在另一个cmd启动发布程序
c:\Program Files\mosquitto>mosquitto_pub -t mytopic -m 111
此时在第2个窗口中会收到111
4. 开发代码sample
以下代码来自
http://mosquitto.org/man/libmosquitto-3.html
Examples
#include <stdio.h> #include <mosquitto.h> void my_message_callback(struct mosquitto *mosq, void *userdata, const struct mosquitto_message *message) {if(message->payloadlen){printf("%s %s\n", message->topic, message->payload);}else{printf("%s (null)\n", message->topic);}fflush(stdout); }void my_connect_callback(struct mosquitto *mosq, void *userdata, int result) {int i;if(!result){/* Subscribe to broker information topics on successful connect. */mosquitto_subscribe(mosq, NULL, "$SYS/#", 2);}else{fprintf(stderr, "Connect failed\n");} }void my_subscribe_callback(struct mosquitto *mosq, void *userdata, int mid, int qos_count, const int *granted_qos) {int i;printf("Subscribed (mid: %d): %d", mid, granted_qos[0]);for(i=1; i<qos_count; i++){printf(", %d", granted_qos[i]);}printf("\n"); }void my_log_callback(struct mosquitto *mosq, void *userdata, int level, const char *str) {/* Pring all log messages regardless of level. */printf("%s\n", str); }int main(int argc, char *argv[]) {int i;char *host = "localhost";int port = 1883;int keepalive = 60;bool clean_session = true;struct mosquitto *mosq = NULL;mosquitto_lib_init();mosq = mosquitto_new(NULL, clean_session, NULL);if(!mosq){fprintf(stderr, "Error: Out of memory.\n");return 1;}mosquitto_log_callback_set(mosq, my_log_callback);mosquitto_connect_callback_set(mosq, my_connect_callback);mosquitto_message_callback_set(mosq, my_message_callback);mosquitto_subscribe_callback_set(mosq, my_subscribe_callback);if(mosquitto_connect(mosq, host, port, keepalive)){fprintf(stderr, "Unable to connect.\n");return 1;}mosquitto_loop_forever(mosq, -1, 1);mosquitto_destroy(mosq);mosquitto_lib_cleanup();return 0; }
使用mosquitto开发MQTT客户端相关推荐
- 使用java开发MQTT客户端接收消息
1.搭建好MQTT服务器,可以参考EMQX企业版试用笔记_Three Big Stones的博客-CSDN博客 2.Eclipse下新建一个Maven项目,并引入mqtt客户端java版本包. < ...
- MQTT客户端(基于mosquitto库)上报温度到腾讯云
Linux C MQTT上报温度到腾讯云(基于mosquitto库) 一.创建产品 1.进入腾讯云官网,登陆或注册账号 2.进入控制台 3.鼠标滑到云产品,进入物联设备服务中的物联网通信 4.点击创建 ...
- MQTT | Windows + mosquitto搭建MQTT Broker(本地服务器)与MQTTX客户端联调
文章目录 一.前言 二.mosquitto 2.1.安装 2.2.修改mosquitto.conf配置文件 2.2.1.listener 2.2.2.allow_anonymous 2.2.3.pas ...
- MQTT客户端(基于mosquitto库)上报温度到阿里云
Linux C MQTT客户端上报温度到阿里云 一.创建产品 1.进入阿里云官方页面,右上角点击登陆或注册阿里云账号 2.登录阿里云账号后点击右上角进入控制台 3.鼠标移到左上角展开导航 4.进入在物 ...
- ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...
- 【ESP8266】ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...
- 从零开始实现一个MQTT客户端 开篇漫谈
iOS开发中,关于MQTT的三方库主要有两种. 基于C实现的Mosquitto库.当然直接去调用C的接口并不是特别的舒服,所以用一个ObjC的类作为桥接.比如MQTTKit. 使用ObjC或者Swif ...
- 一种MQTT客户端消息队列的设计
MQTT 简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...
- mqtt协议产品化实现-华为鸿蒙实现mqtt客户端
前面介绍的mosquitto项目[1]主要实现的是mqtt broker的功能,该小节介绍的物联网操作系统中的mqtt主要是实现客户端功能,因为角色的不同,所以在功能点上.架构上有很大的差异,所依赖的 ...
最新文章
- 数据处理系列(四) 安装Elasticsearch用以存储和查询数据
- 张亚勤:未来10年AI+生物制药大有可为,我们正开展破壁计划 | MEET2022
- jvm优化_镜像镜像–使用反射在运行时查看JVM内部
- 【CodeForces - 527C】Glass Carving(线段树或者SBT或者set)
- 天画-codeMaker组件化架构升级实践
- 词汇的理解 —— 英译汉
- linux中级之lvs配置(命令)
- 图解约瑟夫环(C语言实现)
- python图像处理笔记-八-针孔照相机模型与照相机标定
- ubuntu本地安装中文
- 冰刃(IceSword)的使用方法(基础篇)
- Line云端全自动加好友机器人
- 二维数组 Arrays
- 分享 10 个高星的创意项目!
- SpringBoot POI导出Excel
- Odoo产品分析 (三) -- 人力资源板块(5) -- 出勤(1)
- 3个老油条私藏多年的资源库被曝光了,原来这种资源都在这里找的
- 【这个太强了】微信超级管家,支持自动回复、好友计数、自动同意、群发、好友导出、消息日志、无限多开
- C++解题报告:详解经典搜索难题——八数码问题( 双向BFS A* 求解)
- android u盘地址,android 9.0 获取U盘路径