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. python 高并发 select socket_python – 使用select处理多个请求
  2. FTP(二)ftp部署与防火墙配置
  3. SpringBoot之Bean之条件注入@Condition
  4. Java 范例 - 线程
  5. python面向对象的含义_Python面向对象(一)
  6. idea 文件只读不可编辑--解决方法
  7. VirtualBox是什么
  8. 信道检测手机软件 ios_【对讲机的那点事】宝峰UV5R对讲机上中继台的信道存储设置方法...
  9. android手机向电脑传输文件,手机怎么用数据线连接电脑传输文件
  10. python MDI窗口加载ui文件方法
  11. 原子范数最小化(Atomic Norm Minimization)
  12. java网络编程--UDP程序设计
  13. 信息安全工程师学习笔记《第四章》
  14. 英文单词cipher 和password的区别,用法有什么不同,
  15. 从零开始:AE二次开发中获取A点到B点的最佳路径(3)
  16. oracle 百分位数,Oracle分析函数PERCENTILE_CONT
  17. 分享一款在线视频播放器:h-player
  18. Celery启动定时任务遇到报错
  19. Hwang Keum-Ok asked:
  20. AutoJs学习-实现某音点赞自动回复

热门文章

  1. pyspark 数据类型转换_apache spark-将pyspark字符串转换为日期形式
  2. Linux系统下定时关机命令shutdown
  3. php共享汽车怎么扫码开车,共享汽车套路真多!看完恍然大悟
  4. 分布式一致性算法 - raft 图解
  5. Linux磁盘扩展(非LVM+LVM)
  6. 中秋福利PK!2017公司月饼哪家强?腾讯、阿里、百度、京东、网易等21家中秋月饼盘点!(完整版)
  7. python运行窗口闪退_python+selenium自动化测试,IE浏览器运行过程中出现闪退
  8. java怎么表示正无穷大_java中怎样表示一个无穷大?无穷小
  9. 【译】「食人的大鹫」的运动方法 程序动画技术
  10. MATLAB绘图(特殊二维)