MQTT之基础


MQTT,Message Queuing Telemetry Transport,即消息队列遥测传输,是一种基于发布/订阅范式的“轻量级”消息协议。
MQTT的特点如下:

  1. MQTT是一种发布/订阅传输协议
  2. 使用 TCP/IP 提供网络连接,提供有序、无损、双向连接
  3. 对负载内容屏蔽的消息传输
  4. 具体有三种消息发布的服务质量,包括至多一次、至少一次、只有一次
  5. 小型传输,开销小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量
  6. 使用Last Will和Testament特性通知有关各方客户端异常中断的机制
    EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网消息协议。

安装MQTT

下载Window安装包,安装过程中可能遇到msvcr120.dll 找不到,造成MQTT无法安装,需要先安装VC的运行环境。
在这里插入图片描述
安装Visual Studio 2013 的 Visual C++ 可轉散發套件
在这里插入图片描述

修改EMQX的监听端口

在这里插入图片描述
打开emqx\etc\emqx.conf

## MQTT/TCP - External TCP Listener for MQTT Protocol

## listener.tcp.$name is the IP address and port that the MQTT/TCP
## listener will bind.
##
## Value: IP:Port | Port
##
## Examples: 1883, 127.0.0.1:1883, ::1:1883
listener.tcp.external = 0.0.0.0:1883

启动

D:\emqx\bin> emqx start

停止

D:\emqx\bin> emqx stop

重启

D:\emqx\bin>emqx restart
ok

管理

通过浏览器访问Emqx管理界面

http://127.0.0.1:18083/
用户名:admin
密码:public

在这里插入图片描述

emqx_ctl status检查运行状态

D:\emqx\bin>emqx_ctl status
Node 'emqx@127.0.0.1' 4.3.5 is started

Release as a windows 服务

通过emqx.cmd 命令把EMQX注册成为windows服务。

:: This batch file handles managing an Erlang node as a Windows service.
::
:: Commands provided:
::
:: * install - install the release as a Windows service
:: * start - start the service and Erlang node
:: * stop - stop the service and Erlang node
:: * restart - run the stop command and start command
:: * uninstall - uninstall the service and kill a running node
:: * ping - check if the node is running
:: * console - start the Erlang release in a `werl` Windows shell
:: * attach - connect to a running node and open an interactive console
:: * list - display a listing of installed Erlang services
:: * usage - display available commands

D:\emqx-windows-4.3.5\emqx\bin>emqx.cmd install
D:\emqx-windows-4.3.5\emqx\erts-11.0\bin\erlsrv.exe: Service emqx_4.3.5 added to system.
[SC] ChangeServiceConfig 成功

在这里插入图片描述

服务卸载

emqx uninstall

Websocket客户端连接

websocket默认端口8083,与管理界面的接口18083不同。
在这里插入图片描述

发布 && 订阅

订阅过多,容易造成管理界面瘫痪。
在这里插入图片描述
在这里插入图片描述

MQTT的配置文件

EMQ X Broker 提供了匿名访问,允许客户端不需要用户名与密码就能连接 Broker,通常在用户的生产环境中,此功能被默认关闭,但用户可以在他的内网环境中启用此功能。
在这里插入图片描述

Listener

Listener 主要用于配置不同协议的监听端口和相关参数,EMQ X Broker 支持配置多个 Listener 以同时监听多个协议或端口。
在这里插入图片描述
EMQ X Broker 默认提供 5 个 Listener,它们将占用以下端口:
在这里插入图片描述
-端口- -说明-
1883-------------MQTT/TCP 协议端口
11883------------MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883-------------MQTT/SSL 协议端口
8083-------------MQTT/WS 协议端口
8084-------------MQTT/WSS 协议端口

Listener 配置项的命名规则为 listener...xxx, 即 Listener 使用的协议,目前支持 tcp, ssl, ws, wss。 可以随意命名,但建议是全小写的英文单词,xxx 则是具体的配置项。不同协议的 Listener 的 可以重复,listener.tcp.external 与 listener.ssl.external 是两个不同的 Listener。

由于默认配置的存在,我们能够非常快速地展示如何添加新的 Listener,以 TCP Listener 为例,我们只需要在 emqx.conf 中添加以下一条配置即可:

listener.tcp.example = 12345

Zone

一个 Zone 定义了一组配置项 (比如最大连接数等),Listener 可以通过配置项 listener...zone 指定使用某个 Zone,以使用该 Zone 下的所有配置。多个 Listener 可以共享同一个 Zone。Zone 的命名规则为 zone..xxx,Zone Name 可以随意命名,但同样建议是全小写的英文单词,xxx 是具体的配置项。

此时,我们的每个配置项都存在三个可用值,分别是全局的值,Zone 里设置的值以及默认值,它们的优先级顺序为:Zone > Global > Default

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值