• 喜欢前端以及PHP的朋友们可以加PHP同好会QQ群 点击加入qq群
  • 最近在写一个项目---"小A微信托管平台",大家可以去帮忙测试一下!功能在不断完善中,敬请关注!点击进入
  • 本站使用了PHP8.1与HTTP2.0协议,速度简直超级快有木有?

MQTT协议初探 — Mosquitto2.0的安装与使用

Linux Mr.Adam 4年前 (2020-12-26) 1882次浏览 已收录 0个评论

MQTT 协议初探 -- Mosquitto2.0 的安装与使用

MQTT 协议初探

MQTT 是一种基于代理的发布/订阅的消息协议。与请求/回答这种同步模式不同,发布/订阅模式解耦了发布消息的客户(发布者)与订阅消息的客户(订阅者)之间的关系,这意味着发布者和订阅者之间并不需要直接建立联系。

mqtt 协议采用二进制进行传输,传输数据量很小,因此物联网项目多采用 mqtt 协议进行网络传输.
mqtt 协议不同于 http 等协议的区别是需要一个服务端来提供服务,客户端可以是主题的发布者,同时也可以是主题的订阅者.
花了几分钟画了如下草图:
MQTT 协议初探 -- Mosquitto2.0 的安装与使用
首先我们需要安装一个 mqtt 的服务端

Mosquitto2.0 安装

针对 ubuntu 系统的话可以直接使用 apt 工具进行安装了

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

安装完成之后执行
mosquitto -V
显示如下内容则表示安装成功

mosquitto version 2.0.4

mosquitto is an MQTT v5.0/v3.1.1/v3.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See https://mosquitto.org/ for more information.

# -c 是指定一个配置文件
# -d 作为守护进程
# -p 是指定端口,默认 1883
# -v 详细日志输出

针对其他系统的话官网和 github 上有详细文档
Mosquitto 官网
github 文档
推荐使用 apt 工具来安装,如果条件不允许也可使用编译安装,编译安装过程如下

sudo apt-get install g++ libssl-dev libc-ares-dev uuid-dev xsltproc docbook-xsl

wget https://mosquitto.org/files/source/mosquitto-2.0.4.tar.gz
tar zxvf mosquitto-2.0.4.tar.gz
cd mosquitto-2.0.4
make && make install

使用 Mosquitto2.0

首先订阅一个名为testtopic的主题

mosquitto_sub -v -t testtopic

再开一个窗口,向这个主题发布一条消息

mosquitto_pub -t testtopic -m "Hello World"

订阅主题的窗口显示如下显示

root@homestead:/home# mosquitto_sub -v -t testtopic
testtopic Hello World

至此,我们 Mosquitto 已经安装完毕 :cool:
更多用法见官方文档


小 A 空间 , 版权所有丨如未注明转载 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明MQTT 协议初探 — Mosquitto2.0 的安装与使用
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址