MQTT协议详解 Linux、Windows服务器搭建,客户端创建
Linux mqtt服务器搭建:
- mqtt服务器依赖java环境,先从这个网址下载java的JDK文件
下载链接
注意不要下载错了,选择好自己的系统,千万不要下载成Demos文件
我这里选择的是:
- 解压出来,将解压的 jdk1.8.0_144文件夹放到 /usr/local
- 修改环境变量在 ~/.bashrc 或者 /etc/profile最后加上
当有了java命令时,java环境就搭建好了(记得把bin下所有的文件加上可执行权限) - 从这个网站下载apache-apollo文件
下载链接 注意选择好自己的系统
我这里选择的是:
- 解压出来 :cd apache-apollo-1.7.1/bin/
- 创建一个 mybroker:
./apollo create mybroker
- 进入里面执行文件:
cd mybroker/bin ./apollo-broker run
到这里服务器就创建好了,也可以让这个服务器后台运行
./apollo-broker run &
如果想要修改mqtt连接的端口号,在mybroker/etc/apollo.xml这个文件中,mqtt是通过tcp连接的,所以只需要改连接tcp的端口号就行
Windows mqtt服务器搭建:
运行jdk1.8.0_20164.msi 下载链接
下载apache-apollo-1.7.1文件 下载链接(Windows版的)
我这里选择的是:
管理员身份运行cmd,进入到 apache-apollo-1.7.1/bin 中 执行命令:
apollo create myapollo C:\apache-apollo\broker
创建完之后c盘会出现apache-apollo这个文件夹
- 进入C:\apache-apollo\broker\bin目录下,执行如下命令:
apollo-broker run
- 打开http://127.0.0.1:61680/,用户名admin, 密码password 服务器就搭建好了 参考链接
Linux mqtt客户端创建:
mqtt客户端使用方法,下载 paho.mqtt.c-master源码,编译成动态库,直接调用动态库和头文件
paho.mqtt.c-master依赖 OpenSSL库
先下载最新OpenSSL 下载链接
交叉编译:
在 install 目录中,会生成很多头文件和库
接下来再交叉编译 paho.mqtt.c下载地址
交叉编译(注意路径,编译器一定要选择自己的)
然后在build下的output下就能看到我们要使用的动态库了
使用:
源文件中加入 MQTTClient.h头文件,链接这三个动态库就可以创建MQTT客户端了参考链接
Windows mqtt客户端:
我直接使用的是mqtt客户端的一个小工具,非常好用下载链接
使用mqtt特别注意
MQTT掉线问题:
- 很有可能是连接时没有输入账号密码
- 网络问题
MQTT Client ID一定要唯一
MQTT的回调接受函数一定要返回1,不然可能会重复收到信息。
MQTT最重要的两个理念:QOS TOPIC
QoS 0:“最多一次”,消息发布完全依赖底层 TCP/IP 网络。分发的消息可能丢失或重复。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久后还会有第二次发送。
QoS 1:“至少一次”,确保消息可以到达,但消息可能会重复。
QoS 2:“只有一次”,确保消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。
TOPIC,只有订阅了这个topic,你才能收到关于这个topic的所有消息。
topic有两个常用的通配符 “+” 和 “#”
- "mode/+“如果订阅了这种topic,只是表示当前一层的。从当前的第二层就不行了。例如发送者发送"mode/op”,就可以收到。但是发送者发送"mode/op/type"就收不到了。
- "mode/#“如果订阅了这种topic,表示当前本身和下面子层所有。例如无论发送者发送"mode/op”,还是发送"mode/op/type"都可以收到信息。
MQTT协议详解 Linux、Windows服务器搭建,客户端创建相关推荐
- MQTT协议详解,非常易懂
MQTT协议详解一 协议地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html 当然也有PDF版的,百度 ...
- MQTT协议详解及开发教程(四)MQTT协议报文格式
推荐一款稳定的基于C编写的MQTT Client开源库 cMQTT MQTT协议详解及开发教程(一)MQTT协议概述 MQTT协议详解及开发教程(二)MQTT服务器EMQx搭建 MQTT协议详解及开发 ...
- IoT:MQTT协议详解
IoT -- (七)MQTT协议详解 转自:https://blog.csdn.net/anxianfeng55555/article/details/80908795 MQTT是什么? MQTT(M ...
- MQTT协议详解 二、MQTT控制包格式
文章目录 系列文章目录 前言 一.MQTT控制包格式 二.固定包头 控制包类型 控制包类型标识 剩余长度 三.可变包头 数据包标识 四.载荷 系列文章目录 MQTT协议详解 一.MQTT简介 MQTT ...
- MQTT协议详解 一、MQTT简介
文章目录 系列文章目录 前言 一.简述 二.主要特性 三.应用领域 四.常见术语 总结 系列文章目录 MQTT协议详解 一.MQTT简介 MQTT协议详解 二.MQTT控制包格式 MQTT协议详解 三 ...
- http发送16进制报文_阿里云物联网平台使用心得(25)MQTT协议详解UNSUBSCRIBE报文...
题目 大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子今天给大家介绍一下UNSUBSCRIBE报文. UNSUBSCRIBE报文 从上图中可知,UNSUBSCRI ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- MQTT协议详解 三、MQTT控制包(CONNECT)
文章目录 系列文章目录 前言 CONNECT(客户端请求连接服务端) 一.固定包头(2字节) 二.可变包头(10字节) 协议名字(6字节) 协议等级(1字节) 连接标识(1字节) Clean Sess ...
- MQTT协议详解及v5.0实践——实践类
本文主要包含了以下内容: 1)MQTT协议演进历史及协议特点,总结和分析MQTT协议族的优缺点,分析和总结了为什么相比于其他协议,MQTT适合IoT,业内支持现状等. 2)阿里云IoT MQTT3和5 ...
最新文章
- 洛谷P1315 观光公交
- 追寻终极数据库 - 事务/分析混合处理系统的交付挑战 (1)
- Linux 内核中的 GCC 特性(zz)
- 手把手教你做一个react-redux-demo
- 不知道工作组名称怎样加入_剩米饭不知道怎样做?试试泡菜炒饭,再也不用担心米饭做多了...
- 格力宣布11月11日一天让利7亿元 全场空调最高降3900元
- PageRequestManager
- linq To DataTable
- Ubuntu,QT5连接MySQL
- jdk和jre和jvm区别_JDK,JRE和JVM之间的区别
- 计算机术语hpp,HPP(计算机术语)_百度百科
- 背景图片轮播html代码,一款常见的背景图片轮播动效
- word行首空格下划线_word空格处加下划线 word空格处下划线
- 国网站直接SHOPPING经验之总结, 和美国代购说拜拜~~新加 如何注册PAYPAL~~~~
- 喵呜效应再现!跨界新品齐聚天猫618,网友:一秒无
- eclipse中导入jmf的方法,在java中使用jmf播放音频文件的正确方式
- 【厚积薄发系列】C++项目总结20—pdb和dump服务器部署以及结合windbg自动下载
- 【Kubernetes 系列】Kubernetes 创建K8s集群项目
- group by注意事项
- 建设银行的短信服务原来是这样取消的。