# 使用教程

# 怎么样才能使用 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 文件所在路径]
1

不同安装方式更新命令如下:

## 适用于 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
1
2
3
4
5
6
7
8

# EMQX 支持私有协议进行扩展吗?如支持应该如何实现?

标签: 多协议 扩展

对于新开发的私有协议,EMQX 提供一套 TCP 协议接入规范,私有协议可以按照该规范进行开发接入。如果您所使用的协议已经定型或协议底层非 TCP,可以通过网关进行转换处理,之后通过 MQTT 协议接入 EMQX,或直接联系 EMQ 官方支持私有协议适配。

# 我可以捕获设备上下线的事件吗?该如何使用?

标签: WebHook 系统主题

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 该如何进行配置?

标签: ACL 发布订阅

EMQX 支持限定客户端可以使用的主题,从而实现设备权限的管理。如果要做这样的限定,需要在 EMQX 启用 ACL(Access Control List),并禁用匿名访问和关闭无 ACL 命中的访问许可(为了测试调试方便,在默认配置中,后两项是开启的,请注意关闭)。

## etc/emqx.conf

## ACL nomatch
mqtt.acl_nomatch = allow
1
2
3
4

ACL 可以配置在文件 etc/acl.conf 中,或者配置在后台数据库中。下面例子是 ACL 控制文件的一个配置行,含义是用户 “dashboard” 可以订阅 “$SYS/#” 主题。ACL 在后台数据库中的配置思想与此类似,详细配置方法请参阅 EMQX 文档的 ACL 访问控制 (opens new window) 章节。

{allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
1

# EMQX 能做流量控制吗?