MQTT小记(一)多平台联调,体验通信乐趣

MQTT多平台通信

  • 简介
  • MQTT服务器
    • 分类
    • Ubuntu搭建EMQX服务器
  • MQTT客户端
    • 分类
    • windows运行MQTT Box
    • mt7688+openwrt部署paho.mqtt 客户端
      • openssl
      • paho.mqtt.c源码

简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
具体介绍参考https://www.runoob.com/w3cnote/mqtt-intro.html

MQTT服务器

分类

目前一些开源MQTT服务中间件有:

1)EMQX:github 4882 stars

2)Mosquitto:github 1645 stars

3)Apollo:ActiveMQ的升级版,github 109 stars,但是该项目已经有3~4年没有更新。而其号称的老版本ActiveMQ反而更新更加频繁。

Ubuntu搭建EMQX服务器

1、访问 https://www.emqx.io/cn/downloads#broker,选择linux ubuntu版本。
2、解压emqx-ubuntu16.04-v4.1.0.zip到本地文件夹emqx。
3、运行emqx服务器MQTT小记(一)多平台联调,体验通信乐趣_第1张图片
4、web网页打开emqx服务器的后台管理页面,EMQ提供了一个后端Web控制台,用户可通过 Web 控制台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。如果EMQ安装在本机,则在浏览器打开http://127.0.0.1:18083,输入默认用户名“admin”和默认密码“public”,进入EMQ管理控制台。如下图所示,“Stats(1)”表格中,显示的是客户端和Topic的一些基本信息,比如“Clients/Count”的数目为0,表示目前连接的客户端数目为0;“Client/Max”表示的是连接曾经达到的最大值等。这里不对每项做一一介绍,读者对MQTT协议比较熟悉之后,就能理解监控仪表盘上的内容。
MQTT小记(一)多平台联调,体验通信乐趣_第2张图片

MQTT客户端

分类

Mosquito CLI
MQTTX
MQTT.fx
MQTT Box
mqtt-spy
MQTT Lens

windows运行MQTT Box

1、下载安装包http://workswithweb.com/html/mqttbox/installing_apps.html#install_on_windows
MQTT小记(一)多平台联调,体验通信乐趣_第3张图片
2、运行MQTTbox
MQTT小记(一)多平台联调,体验通信乐趣_第4张图片
MQTT小记(一)多平台联调,体验通信乐趣_第5张图片
MQTT小记(一)多平台联调,体验通信乐趣_第6张图片

mt7688+openwrt部署paho.mqtt 客户端

openssl

1、下载openssl源码包https://www.openssl.org/source/

2、在openssl-1.1.1g目录下执行
./config no-asm shared no-async --prefix=$PWD/install --cross-compile-prefix=mipsel-openwrt-linux-uclibc-
MQTT小记(一)多平台联调,体验通信乐趣_第7张图片
3、修改Makefile,找到Makefile中的所有-m64,或者-m32的地方,然后删除(应该只有两处地方),很重要。
4、make
make install
编译完成后,在openssl-1.1.1g/install/lib文件夹底下会生成libcrypto.so和libsso.so等动态库
在这里插入图片描述

paho.mqtt.c源码

1、下载paho.mqtt.c源码包
https://github.com/eclipse/paho.mqtt.c
2、修改Makefile。在129行添加openssl的链接目录,注意改成你自己的路径。
CFLAGS += -I ./…/openssl-1.1.1g/install/include
LDFLAGS += -ldl -L ./…/openssl-1.1.1g/install/lib
3、make CC=mipsel-openwrt-linux-uclibc-gcc
4、编译完成后,会生成build/output,其中
libpaho-mqtt3as.so.1等等就是所要的动态库。
可参考README.md文档,其中有对库和API的相关说明。
5、在paho.mqtt.c-1.3.1/build/output/samples文件夹底下,MQTTAsync_publish和MQTTAsync_subscribe分别为异步客户端的发布和订阅demo,可用来测试使用。
6、开启mt7688 samba共享。将MQTTAsync_publish和MQTTAsync_subscribe拷贝到目标板上运行。运行前需要将libpaho-mqtt3as.so.1.0、libssl.so.1.1、libcrypto.so.1.1依次复制到/usr/lib/底下,并命名为
libpaho-mqtt3as.so.1、libssl.so.1.1、libcrypto.so.1.1
7、具体说明可以参考
https://www.eclipse.org/paho/files/mqttdoc/MQTTAsync/html/index.html
和https://blog.csdn.net/weixin_37139197/article/details/78907828

你可能感兴趣的:(MQTT小记(一)多平台联调,体验通信乐趣)