1 EMQ介绍
EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台研发的开源物联网 MQTT 信息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网信息协议
EMQ 项目设计目的是承载移动终端或物联网终端海量 MQTT 连接,并实此刻海量物联网设备间快速低延时信息路由: 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。分布式节点集群,快速低延时的信息路由,单集群支持1000万规模的路由。信息服务器内扩展,支持定制多种认证方式、有效存储信息到后端数据库。完整物联网协议支持,MQTT、MQTT-SN、CoAP、WebSocket 或私有协议支持。EMQ官网:https://www.emqx.io/cn
2 准备工作
搭建MQTT服务器之前,需要先下载EMQ软件包,个人运用选取EMQ X Broker,EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台研发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 信息服务器
进入官网下载:https://www.emqx.io/cn/downloads#broker
选取版本,软件包,笔者下载的是V2.3.11,软件包选取Window,Window10的压缩包
下载完成解压,打开emqttd文件夹,软件包里即包括如下文件(重视:EMQ的下载存放路径别有中文):
EMQ 2.0用户手册:https://docs.emqx.net/broker/v2/cn/
3 安装EMQ
运用管理员身份运行cmd命令窗口,转到emqttd的存放路径下/bin文件夹路径
输入命令 emqttd install ,安装emq
输入命令 emqttd start ,起步emq,第1次安装起步emq时可能会卡住,不碍事,关闭命令窗口,再次起步emq,当显现以下界面时候即暗示已成功起步emq
EMQ 信息服务器起步后,会默认加载 Dashboard 插件,起步 Web 管理掌控台。可经过 Web 掌控台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。
掌控台位置: http://127.0.0.1:18083,默认用户: admin,秘码:public
尝试登录掌控台,验证 EMQ 是不是成功起步
能进入掌控台,即暗示EMQ安装成功
4 添加用户
EMQ 2.0 支持丰富的扩展插件,包含掌控台、扩展模块、多种认证方式、多种接入协议等:
能够在 Web 掌控台查看各个插件的运行状况:
用户名、秘码认证插件(emq_auth_username)默认是停止运行的,咱们需要将其更改为起步
在命令行窗口运用 emqttd_ctl users add 命令添加用户,添加一个用户名和秘码均为test的用户做MQTT测试,可运用命令 emqttd_ctl users list 查看用户列表验证是不是成功添加用户
4 数据交互测试
4.1 MQTTBox连接
运用MQTTBox工具测试 EMQ MQTT服务器是不是能正常通信,自定义发布主题和订阅主题,得到MQTTBox连接信息如下:
连接信息 参数 位置 127.0.0.1 端口 1883 用户名 test 秘码 test 发布主题 publish_test订阅主题 subscribe_test
MQTTBox连接上EMQ MQTT服务器,且订阅subscribe_test主题
4.2 Websocket 连接
EMQ 2.0 信息服务器默认占用的 TCP 端口包含:
端口 用途 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/WebSocket 端口8080 HTTP API 端口 18083 Dashboard 管理掌控台端口
故咱们用WebSocket做MQTT连接时端口应该为8083,而不是1883,故得到WebSocket连接信息如下:
连接信息 参数 位置 127.0.0.1 端口 8083 用户名 test 秘码 test发布主题 subscribe_test 订阅主题 publish_test
WebSocket连接上EMQ MQTT服务器,且订阅publish_test主题
4.3 信息交互测试MQTTBox发布一条主题为publish_test的信息,能够在EMQ WebSocket上看到发布的信息WebSocket发布一条主题为subscribe_test的信息,能够在MQTTBox上看到发布的信息 EMQ MQTT服务器能正常接收、发送数据,正常通信,运用EMQ搭建MQTT服务器成功重视:此处搭建的MQTT服务器只能运用局域网通信进行数据传输
|