使用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主要是实现客户端功能,因为角色的不同,所以在功能点上.架构上有很大的差异,所依赖的 ...
最新文章
- python 高并发 select socket_python – 使用select处理多个请求
- FTP(二)ftp部署与防火墙配置
- SpringBoot之Bean之条件注入@Condition
- Java 范例 - 线程
- python面向对象的含义_Python面向对象(一)
- idea 文件只读不可编辑--解决方法
- VirtualBox是什么
- 信道检测手机软件 ios_【对讲机的那点事】宝峰UV5R对讲机上中继台的信道存储设置方法...
- android手机向电脑传输文件,手机怎么用数据线连接电脑传输文件
- python MDI窗口加载ui文件方法
- 原子范数最小化(Atomic Norm Minimization)
- java网络编程--UDP程序设计
- 信息安全工程师学习笔记《第四章》
- 英文单词cipher 和password的区别,用法有什么不同,
- 从零开始:AE二次开发中获取A点到B点的最佳路径(3)
- oracle 百分位数,Oracle分析函数PERCENTILE_CONT
- 分享一款在线视频播放器:h-player
- Celery启动定时任务遇到报错
- Hwang Keum-Ok asked:
- AutoJs学习-实现某音点赞自动回复
热门文章
- pyspark 数据类型转换_apache spark-将pyspark字符串转换为日期形式
- Linux系统下定时关机命令shutdown
- php共享汽车怎么扫码开车,共享汽车套路真多!看完恍然大悟
- 分布式一致性算法 - raft 图解
- Linux磁盘扩展(非LVM+LVM)
- 中秋福利PK!2017公司月饼哪家强?腾讯、阿里、百度、京东、网易等21家中秋月饼盘点!(完整版)
- python运行窗口闪退_python+selenium自动化测试,IE浏览器运行过程中出现闪退
- java怎么表示正无穷大_java中怎样表示一个无穷大?无穷小
- 【译】「食人的大鹫」的运动方法 程序动画技术
- MATLAB绘图(特殊二维)