MqttGoListen是一款基于Golang开发的MQTT订阅监听并写入数据库的工具,支持 MQTT 3.1 和 MQTT 3.1.1,支持Mysql、Postgres、Sqlite、Memory数据库。
目前MqttGoListen处于开发初期,主要应用于测试环境,不建议部署在生产环境中。
因此配置文件可能因版本不同而不兼容,请阅读指定版本的配置文档。
Docker版本将待功能基本稳定后进行开发。
MqttGoListen 采用 应用程序 + 配置文件 的方式启动,因此配置文件再部署过程中是不可或缺的,关于配置文件的详情请参考 配置文件 章节。
首先在 Release 页面下载最新二进制文件,需要根据部署系统选择相应的架构二进制文件。
然后在项目创建一个 config.ini
文件
DbType="sqlite"
DbPath="./db.sqlite"
[test_mqtt]
Host="iot.eclipse.org"
Port=1883
最后启动监听程序
./MqttGoListen -c config.ini
目前配置文件只采用ini
的格式,其中
- 默认分区 为全局配置项,如数据库配置等。
- 自定义分区 为MQTT配置项,分区名自定义但不能重复。
全局配置必须放在默认分区,否则将被忽略执行。
键 | 值 | 备注 |
---|---|---|
DbType | string | 数据库类型(sqlite,mysql,postgre,memory) |
DbHost | string | 数据库主机,仅mysql,postgre需要此项 |
DbPort | int(0-65535) | 数据库端口号,仅mysql,postgre需要此项 |
DbName | string | 数据库名称,仅mysql,postgre需要此项 |
DbUsername | string | 数据库用户名,仅mysql,postgre需要此项 |
DbPassword | string | 数据库密码,仅mysql,postgre需要此项 |
DbPath | string | 数据库文件路径,仅sqlite需要此项 |
键 | 值 | 备注 |
---|---|---|
Table | string | 数据库表名,默认为配置分区名称 |
Host | string | MQTT主机地址,必填 |
Port | int(0-65535) | MQTT端口号,默认为1883 |
ClientId | string | MQTT客户端ID,默认为随机字符串 |
IsCleanSession | bool | MQTT会话清除,默认为true |
IsLogin | bool | MQTT用户名密码登录,默认为false |
Username | string | MQTT用户名,只有IsLogin 为true 时有效 |
Password | string | MQTT密码,只有IsLogin 为true 时有效 |
SubTopic | string | 订阅主题,默认为# |
SubQos | int(0-2) | 订阅主题的Qos,取值范围(0,1,2),默认为0 |