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客户端相关推荐

  1. 使用java开发MQTT客户端接收消息

    1.搭建好MQTT服务器,可以参考EMQX企业版试用笔记_Three Big Stones的博客-CSDN博客 2.Eclipse下新建一个Maven项目,并引入mqtt客户端java版本包. < ...

  2. MQTT客户端(基于mosquitto库)上报温度到腾讯云

    Linux C MQTT上报温度到腾讯云(基于mosquitto库) 一.创建产品 1.进入腾讯云官网,登陆或注册账号 2.进入控制台 3.鼠标滑到云产品,进入物联设备服务中的物联网通信 4.点击创建 ...

  3. 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 ...

  4. MQTT客户端(基于mosquitto库)上报温度到阿里云

    Linux C MQTT客户端上报温度到阿里云 一.创建产品 1.进入阿里云官方页面,右上角点击登陆或注册阿里云账号 2.登录阿里云账号后点击右上角进入控制台 3.鼠标移到左上角展开导航 4.进入在物 ...

  5. ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)

    前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...

  6. 【ESP8266】ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)

    前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...

  7. 从零开始实现一个MQTT客户端 开篇漫谈

    iOS开发中,关于MQTT的三方库主要有两种. 基于C实现的Mosquitto库.当然直接去调用C的接口并不是特别的舒服,所以用一个ObjC的类作为桥接.比如MQTTKit. 使用ObjC或者Swif ...

  8. 一种MQTT客户端消息队列的设计

    MQTT 简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...

  9. mqtt协议产品化实现-华为鸿蒙实现mqtt客户端

    前面介绍的mosquitto项目[1]主要实现的是mqtt broker的功能,该小节介绍的物联网操作系统中的mqtt主要是实现客户端功能,因为角色的不同,所以在功能点上.架构上有很大的差异,所依赖的 ...

最新文章

  1. 一家全是学霸!王力宏的哥哥也是博士,近日获5000余万拨款用于这项研究
  2. angularJS 表单验证
  3. tensorflow从入门到放弃(二)
  4. 玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化
  5. 工业智能相机与基于PC的机器视觉的区别比较
  6. mc服务器rank称号系统,绝地求生称号系统详解 称号系统奖励有哪些
  7. Python安装第三方库临时使用国内源
  8. php pdo mysql 预处理_PHP PDO mysql 处理类(prepare 预处理)
  9. 用php写圣诞祝福页面,圣诞祝福文案 抖音圣诞节一句话祝福
  10. SQL case when then else end运用
  11. [转]Android调用so文件(C代码库)方法详解
  12. 红帽linux安装wordpress,linux Centos怎么安装wordpress
  13. mysql中grade字段降序排列_Mysql order by 多个字段排序
  14. vs2019 IIS Express Web服务器无法启动
  15. win10 下装win7
  16. 关于计算机的英语单词及例句,小学生必背英语单词及例句(四年级).doc
  17. C99 designator ‘name’ outside aggregate initializer
  18. 布道微服务_18服务配置中心设计方案
  19. imperva 默认策略添加例外
  20. PHP简单实现MVC框架路由功能模式

热门文章

  1. JS中页面跳转,传值包含中文时乱码解决方案
  2. 我承认这样真的很安详 和楼下老爷爷一样
  3. 域名故事:史上超贵的域名成交记录
  4. 通过js动态创建标签,并设置属性
  5. 用计算机打出小星星,怎样打出一个小星星和更多的符号?
  6. 前端简历中的项目经历怎么突出亮点?
  7. 什么是全栈,Full Stack Developer
  8. 揭开色彩营销中隐藏在品牌运营下的“变脸”戏法!
  9. pandas中Series的apply函数
  10. MongoDB技术文章合辑1:基础知识