高级进阶

MQTT 5

  1. 用户属性

    点击新建按钮,来到新建客户端的页面,首先我们需要选择 MQTT 的版本为 5.0,这样就可以看到下方出现了配置用户属性的卡片,卡片内是一个可以配置键值对的输入框,可以点击右上角的添加按钮,来增加用户属性配置,点击每一行末尾的删除按钮可以删除配置,最后输入需要配置的属性名称和内容即可。连接成功后,MQTT 服务器就可以获取到该客户端的用户属性内容。

    mqttx-user-properties-connect

    除了客户端连接时的用户属性配置外,该版本还支持配置发布消息时的用户属性。当新建连接为 MQTT 5.0 的客户端时,我们可以看到右下角的发布消息的区域出现了一个 Meta 按钮,点击该按钮即可出现配置发布时的属性的卡片,我们可以在卡片顶部看到用户属性配置。

    mqttx-user-properties-publish

  2. 请求响应

    点击 Meta 按钮,输入框内输入一个响应主题:/ack/1,输入一个对比数据:light,并在当前连接客户端订阅一个 /ack/1。

    mqttx-response-topic

  3. 内容类型和载荷格式

    点击 Meta 按钮,在输入框内输入 Content Type,点击设置 Payload Format Indicator 的值后,发布消息即可。

    mqttx-content-type

  4. 订阅标识符和订阅选项

    我们打开订阅主题的弹出框,下方可以设置 Subscription Identifier 和包含了 No Local、Retain as Published 和 Retain Handling 的订阅选项。用户可以在订阅报文中指定一个数字订阅标识符,并在消息分发时返回此标识符。客户端可以建立订阅标识符与消息处理程序的映射,以在收到 PUBLISH 报文时直接通过订阅标识符将消息定向至对应的消息处理程序,同时可以配置这些订阅选项来改变服务端的行为。

    mqttx-sub-flag

设置

点击左侧菜单栏底部的设置按钮,或使用快捷键,macOS 用户可以使用 command + , 快捷键,其它用户可以使用 control + , 快捷键来跳转到设置页面,目前支持选择语言,开启是否自动检查更新、设置跟随操作系统主题变化或手动选择主题,还有高级功能中的数据备份和恢复功能。

mqttx-theme

数据管理

高级设置中包含了数据的备份与恢复功能。用户可选择两种导入导出的方式,也可以通过连接页面中的右上角菜单,或者在设置页面中的高级功能栏里。

在设置页面里可以在最下方的高级功能中,选择点击数据备份和数据恢复两个按钮。选择数据备份时,将导出所有的连接数据,包含所有收发到的消息等。选择数据恢复时,选择完导入文件的路径,确认后即可恢复数据。文件格式支持 JSONXMLCSVExcel

mqttx-advance

脚本

在 v1.4.2 版本以后,MQTT X 新增了脚本编辑功能,在该功能中,用户可编写自定义脚本(JavaScript)对发送和接收到的 Payload 进行自定义转化,配合定时发送功能,可实现一些模拟数据上报的自动化测试功能。

注意:该功能目前属于测试 Beta 阶段。

点击左侧菜单栏中的 脚本 按钮,可进入到脚本编辑页面,在该页面中,用户可在最上方的代码编辑器中,编写 JavaScript 代码,全局只包含一个 execute API,用户需要编写一个脚本函数,该函数接收一个 value 参数,即为 Payload, 函数中便可对 value 进行自定义修改转化,最后将该函数作为参数传入到 execute 中即可执行自定义编写的函数。

下方还包含了一个 输入输出 框,可输入预想输入值,点击右边的 测试 按钮,便可在 输出 框中查看执行结果,输入的值的格式包含了 JSONPlaintext,方便用户提前调试自定义编写的脚本功能。完成测试后,可点击最右上角的 保存 按钮,输入该脚本的名称后就可对该脚本进行保存。保存完成后就可以到连接页面进行使用了。保存完成的脚本还可进行编辑和删除。

在连接页面中,点击右上角的下拉功能菜单,选择 使用脚本,在弹出窗中,选择你需要使用的预先保存好的脚本,然后选择应用类型,包含了,发送时,接收时和全部。选择完成后,根据数据类型选择发送或接收的数据格式,正常使用消息的收发,此时如果看到预期效果,便完成了一个完整的脚本使用的功能。如果用户需要取消脚本,可点击顶部状态栏中的红色的 停止脚本 按钮,便可停止使用脚本。

该功能具有一定的扩展性和灵活性,需用户配合实际需求来进行使用。

mqttx-script

脚本使用实例可在 /docs/script-example 文件夹中查看,目前提供了两个内置脚本,时间戳转化和温湿度数据模拟。如果在您的使用中有更好的,更实用的脚本也可以提交您的代码到这里,方便让更多的人使用到。

日志

在 v1.5.0 版本后,MQTT X 引入了日志记录功能,方便用户调试连接、报告错误。生产环境下,日志系统显示 3 个级别的信息:

  • INFO 用于提示用户操作信息
  • WARN 产生不安全/潜在风险的警告
  • ERROR 产生失败的错误

默认情况下,日志会被写入 log 文件:

  • Linux: ~/.config/MQTTX/logs/log
  • macOS: ~/Library/Application Support/MQTTX/logs/log
  • Windows: %USERPROFILE%\AppData\Roaming\MQTTX\logs\log

在每次关闭 MQTTX 时,当前的日志文件会被重命名为 timestamp [YY]-[MM]-[DD]T[hh]:[mm].log 格式。

mqttx-log

其它

  1. 连接操作

    点击顶部的操作栏按钮,可以快速断开连接,删除当前连接,当前数据导入导出,定时消息,流量统计等。

    mqttx-connection

  2. 消息处理

    在消息栏右上角的 AllReceivedPublished 按钮可以过滤出 全部消息,已接收的消息,和已发布的消息。

    点击顶部的操作栏按钮,选择 Search 项,或使用快捷键,macOS 用户可以使用 command + f 快捷键,其它用户可以使用 control + f 快捷键,来打开按 Topic 搜索的的功能,支持主题和消息内容的模糊查询。

    点击顶部的操作栏按钮,选择 Clear History 项,可以快速清空当前连接所发送和接收的消息。

    mqttx-search

  3. 检查更新

    点击左侧底部的 i 按钮,可进入到 About 页面,了解 MQTT X 的版本信息和 EMQX 的相关信息。点击 Check for Updates 可以检查是否有更新版本。

    mqttx-update

  4. 最大重连数

    在自动检查更新的下方,有一个最大重连数设置,可以设置一个整数,当 Broker 断开,或者连接不上的情况下时,重连次数超过该数值,连接将会彻底断开。

  5. 多窗口

    在连接列表中,右键点击,选择新建窗口,为该连接创建新窗口。在新窗口中,同样可以进行连接,订阅主题,发布和接受消息等。如果当创建的多个连接之间存在某种联系时,或需要查看同时接受到的消息,可以新建多个视图窗口,同时进行查看。在 v1.4.1 版本以后,用户还可点击顶部的窗口按钮,快速新建窗口。

    mqttx-window

    mqttx-muti-window

  6. 流量统计

    在右上角的下拉菜单中,可点击流量统计项,MQTT X 会自动订阅系统主题,并可以在页面中展示该 Broker 下的简单的流量统计图表,运行版本和运行时间。

    EMQX 默认只允许本机的 MQTT 客户端订阅 $SYS 主题,请参照 内置 ACL 修改发布订阅 ACL 规则。

    mqttx-bytes

  7. 定时消息

    在右上角的下拉菜单中,可点击定时消息项,设置发送频率,单位为秒,设置完成后手动发送一条消息,将会自动根据设置的发送频率自动发送消息。

    mqttx-timed-message

  8. 禁止消息自动滚动

    设置中新增了对接收和发布消息时,消息列表自动滚动的控制。可以到设置页面中开启自动滚动功能。关闭自动滚动功能后,可以提升部分发送和接收消息时的性能。

    mqttx-autoscroll