# 使用教程
# 怎么样才能使用 EMQX?
EMQX 开源版可免费下载使用,下载地址:https://www.emqx.com/en/downloads?product=broker (opens new window)
EMQX 企业版支持下载试用,用户可以在 https://www.emqx.com/en/downloads?product=enterprise (opens new window) 下载,申请试用 license (opens new window)之后即可试用。
另外,还可以在公有云直接创建 EMQX 企业版:
# 怎样更新 EMQX license?
标签: License
点击 "Download License" 按钮下载 license, 然后找到您下载的 "license.zip" 文件并解压.
复制压缩包里的两个文件 (emqx.lic, emqx.key) 到 EMQX 的 license 目录.
如果您的 EMQX 是使用 zip 包安装的, 那么压缩包里的两个文件需要拷贝到 "emqx/etc/" 目录; 如果是用 DEB/RPM 包安装的, 两个文件需要拷贝到 "/etc/emqx/" 目录; 如果是用 Docker 镜像安装的, 两个文件需要拷贝到 "/opt/emqx/etc/" 目录.
拷贝完成后需要通过命令行重新加载 license 以完成更新:
基础命令:
emqx_ctl license reload [license 文件所在路径]
不同安装方式更新命令如下:
## 适用于 zip 包
./bin/emqx_ctl license reload etc/emqx.lic
## DEB/RPM 包安装
emqx_ctl license reload /etc/emqx/emqx.lic
## Docker 镜像安装
docker exec -it emqx-ee emqx_ctl license reload /opt/emqx/etc/emqx.lic
2
3
4
5
6
7
8
# EMQX 支持私有协议进行扩展吗?如支持应该如何实现?
对于新开发的私有协议,EMQX 提供一套 TCP 协议接入规范,私有协议可以按照该规范进行开发接入。如果您所使用的协议已经定型或协议底层非 TCP,可以通过网关进行转换处理,之后通过 MQTT 协议接入 EMQX,或直接联系 EMQ 官方支持私有协议适配。
# 我可以捕获设备上下线的事件吗?该如何使用?
EMQX 企业版可以通过以下的三种方式捕获设备的上下线的事件,
- Web Hook
- 订阅相关的 $SYS 主题
- $SYS/brokers/${node}/clients/${clientid}/connected
- $SYS/brokers/${node}/clients/${clientid}/disconnected
- 直接保存到数据库
最后一种方法只有在企业版里才支持,支持的数据库包括 Redis、MySQL、PostgreSQL、MongoDB 和 Cassandra。用户可以通过配置文件指定所要保存的数据库,以及监听 client.connected 和 client.disconnected 事件,这样在设备上、下线的时候把数据保存到数据库中。
# 我想限定某些主题只为特定的客户端所使用,EMQX 该如何进行配置?
EMQX 支持限定客户端可以使用的主题,从而实现设备权限的管理。如果要做这样的限定,需要在 EMQX 启用 ACL(Access Control List),并禁用匿名访问和关闭无 ACL 命中的访问许可(为了测试调试方便,在默认配置中,后两项是开启的,请注意关闭)。
## etc/emqx.conf
## ACL nomatch
mqtt.acl_nomatch = allow
2
3
4
ACL 可以配置在文件 etc/acl.conf
中,或者配置在后台数据库中。下面例子是 ACL 控制文件的一个配置行,含义是用户 “dashboard” 可以订阅 “$SYS/#” 主题。ACL 在后台数据库中的配置思想与此类似,详细配置方法请参阅 EMQX 文档的 ACL 访问控制 (opens new window) 章节。
{allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.