文章目录

  • 前言
  • 一、mqtt是什么?
  • 二、EMQX部署步骤
  • 1.下载压缩包
  • 2.解压
  • 3.配置EMQX连接属性
  • 4.配置redis认证
  • 5.配置默认启用插件
  • 6.EMQX - Dashboard
  • 7.MQTT.fx工具连接mqtt
  • 总结



前言


物联网通信最常用的协议之一是MQTT,而EMQX是作为一个消息中间件或者是一个MQTT的服务器,能够支持MQTT协议的通信


一、mqtt是什么?

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT协议属于应用层的协议,和HTTP属于统一层级。


MQTT协议的通信是通过一条条消息通道,在这里称为主题(topic),来进行消息的传输。 例如,现在有一条主题 :a/b/c 其中拥有发布权限的客户端A,可以向 a/b/c中发布消息。而具有这条主题的订阅权限的客户端B,则可以订阅主题a/b/c。那么在A向主题a/b/c发布一条消息之后,B则可以接收到该消息。

而EMQX则是实现mqtt消息代理分发的一个消息中间件。

二、EMQX部署步骤

1.下载压缩包

2.解压

zmq和emq区别_linux

3.配置EMQX连接属性

在etc目录下有一个emqx.conf文件。在该文件中,可以配置mqtt的连接地址信息
listener.tcp.external = 0.0.0.0:1883 tcp连接地址
listener.ssl.external = 8883 ssl加密连接地址
以及配置证书路径
listener.ssl.external.cacertfile =
listener.ssl.external.keyfile=

4.配置redis认证

配置文件位于etc/plugin/emqx_auth_redis.conf,该文件中可配置redis地址以及客户端账号密码和主题权限
auth.redis.type = single redis节点类型
auth.redis.server= redis连接地址
auth.redis.password redis连接密码
auth.redis.auth_cmd = HMGET mqtt_user:%u password redis中用户名密码存储格式
auth.redis.password_hash = sha256 密码加密算法plain代表明文
auth.redis.acl_cmd = HGETALL iot_mqtt_acl:%u redis中权限存储格式

5.配置默认启用插件

配置文件位于 data/load_plugins

zmq和emq区别_zmq和emq区别_02

6.EMQX - Dashboard

dashboard相当于emqx的后台管理员运维界面。
默认地址ip:18083
账号 admin
密码 public
可以在etc/plugin/emqx_dashboard.conf中配置

zmq和emq区别_物联网_03


clinet是客户端管理,可以在此强制踢出客户端

topic 是当前使用的主题列表

Subscriptions 当前已经被订阅的主题信息

plugin菜单中可以对dashboard进行启动、停止操作

zmq和emq区别_redis_04

listener菜单中可以看到mqtt的连接信息

zmq和emq区别_redis_05

7.MQTT.fx工具连接mqtt

①配置mqtt客户端连接信息

zmq和emq区别_redis_06

②订阅或发布主题

zmq和emq区别_zmq和emq区别_07

总结

EMQX还可以使用MYSQL,配置文件,命令等方式进行密码和权限的认证,具体请参考plugin中的各个插件的使用