MQTT协议详解 Linux、Windows服务器搭建,客户端创建

Linux mqtt服务器搭建:

  1. mqtt服务器依赖java环境,先从这个网址下载java的JDK文件
    下载链接
    注意不要下载错了,选择好自己的系统,千万不要下载成Demos文件
    我这里选择的是:
    在这里插入图片描述
  2. 解压出来,将解压的 jdk1.8.0_144文件夹放到 /usr/local
  3. 修改环境变量在 ~/.bashrc 或者 /etc/profile最后加上
    在这里插入图片描述
    当有了java命令时,java环境就搭建好了(记得把bin下所有的文件加上可执行权限
  4. 从这个网站下载apache-apollo文件
    下载链接 注意选择好自己的系统
    我这里选择的是:
    在这里插入图片描述
  5. 解压出来 :cd apache-apollo-1.7.1/bin/
  6. 创建一个 mybroker:
./apollo create mybroker
  1. 进入里面执行文件:
cd  mybroker/bin            
 ./apollo-broker run

到这里服务器就创建好了,也可以让这个服务器后台运行

./apollo-broker run &

如果想要修改mqtt连接的端口号,在mybroker/etc/apollo.xml这个文件中,mqtt是通过tcp连接的,所以只需要改连接tcp的端口号就行

Windows mqtt服务器搭建:

  1. 运行jdk1.8.0_20164.msi 下载链接

  2. 下载apache-apollo-1.7.1文件 下载链接(Windows版的)
    我这里选择的是:
    在这里插入图片描述

  3. 管理员身份运行cmd,进入到 apache-apollo-1.7.1/bin 中 执行命令:

apollo create myapollo C:\apache-apollo\broker

创建完之后c盘会出现apache-apollo这个文件夹

  1. 进入C:\apache-apollo\broker\bin目录下,执行如下命令:
apollo-broker run
  1. 打开http://127.0.0.1:61680/,用户名admin, 密码password 服务器就搭建好了 参考链接

Linux mqtt客户端创建:

mqtt客户端使用方法,下载 paho.mqtt.c-master源码,编译成动态库,直接调用动态库和头文件
paho.mqtt.c-master依赖 OpenSSL库

  1. 先下载最新OpenSSL 下载链接

  2. 交叉编译:
    在这里插入图片描述在这里插入图片描述

  3. 在 install 目录中,会生成很多头文件和库

  4. 接下来再交叉编译 paho.mqtt.c下载地址

  5. 交叉编译(注意路径,编译器一定要选择自己的
    在这里插入图片描述
    在这里插入图片描述

  6. 然后在build下的output下就能看到我们要使用的动态库了
    在这里插入图片描述
    使用:
    源文件中加入 MQTTClient.h头文件,链接这三个动态库就可以创建MQTT客户端了参考链接

Windows mqtt客户端:

我直接使用的是mqtt客户端的一个小工具,非常好用下载链接

使用mqtt特别注意

MQTT掉线问题:

  1. 很有可能是连接时没有输入账号密码
  2. 网络问题

MQTT Client ID一定要唯一
MQTT的回调接受函数一定要返回1,不然可能会重复收到信息。

MQTT最重要的两个理念:QOS TOPIC
QoS 0:“最多一次”,消息发布完全依赖底层 TCP/IP 网络。分发的消息可能丢失或重复。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久后还会有第二次发送。
QoS 1:“至少一次”,确保消息可以到达,但消息可能会重复。
QoS 2:“只有一次”,确保消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。

TOPIC,只有订阅了这个topic,你才能收到关于这个topic的所有消息。
topic有两个常用的通配符 “+” 和 “#”

  1. "mode/+“如果订阅了这种topic,只是表示当前一层的。从当前的第二层就不行了。例如发送者发送"mode/op”,就可以收到。但是发送者发送"mode/op/type"就收不到了。
  2. "mode/#“如果订阅了这种topic,表示当前本身和下面子层所有。例如无论发送者发送"mode/op”,还是发送"mode/op/type"都可以收到信息。
  • 1
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页

打赏

时费

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者