MQTT在多linux主机的通讯实现

MQTT在多linux主机的通讯实现

环境

  • 局域网主机R3600:Ubuntu20
  • 局域网主机Ubuntu on VMware
  • 公网主机:118.195.183.14

MQTT基础

mqtt的发布-订阅模型

image-20220818101350894

mqtt的消息流

image-20220818101417467

内容

准备3个linux主机,2个是局域网主机,1个为公网主机。(只有一个也可以)

角色分配为局域网主机为client,公网主机为broker,同时也作为client

安装mosquitto的broker和client

输入如下查询可以安装哪些组件

sudo apt list | grep mosquitto

image-20220818141007289

sudo apt install mosquitto mosquitto-clients

在3台主机都安装上broker和client,新增如下指令说明安装ok

image-20220818103457028

运行broker

上述mosquitto安装后broker就已经自动运行了,输入如下查看

ps -ef | grep mosq && netstat -tln | grep 1883

image-20220818104245204

注意:如果此时再去执行mosquitto,则会提示端口被占用

image-20220818103235788

发布与订阅

在公网主机开2个shell窗口,一个用于订阅消息,一个用于发布消息

拓扑结构是2个client和1个broker都在同一主机上

订阅一个主题为greeting的消息,有订阅消息到时会显示

image-20220818115811940

发布主题为greeting的消息

image-20220818115820321

发布与订阅(跨网络)

实际使用的拓扑结构往往时将broker运行在公网主机上,而client往往是各式各样的物联网设备。

这里实现局域网主机R3600发布消息,局域网主机vm-ubuntu和公网主机VM-0-2-ubuntu订阅消息

如下图表明多设备跨网络的mqtt的通讯成功

image-20220818143039744

image-20220818143047317

image-20220818143058302

参考

  1. Documentation | Eclipse Mosquitto
  2. Beginners Guide To The MQTT Protocol (steves-internet-guide.com)
  3. How MQTT Works -Beginners Guide (steves-internet-guide.com)
  4. mosquitto.conf man page | Eclipse Mosquitto
  5. [mosquitto port 1883 already in use - Raspberry Pi Forums](https://mosquitto.org/man/mosquitto-conf-5.html)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值