Mqtt服务器
定义
一、说明
MqttTcpService
是基于 Mqtt 协议的消息服务端,支持客户端接入管理、订阅关系维护、消息路由转发、遗嘱消息处理等功能,兼容 Mqtt 3.1.1 及 5.0+ 协议版本。
二、特点
- 多协议版本支持(v3.1.1/v5.0)
- 高性能异步架构设计
- 主题树形管理机制
- 精确的 QoS 保障
- 遗嘱消息转发
- 插件化扩展体系
- TLS 加密通信
- 客户端黑白名单控制
三、应用场景
- 工业物联网平台
- 实时数据监控中心
- 智慧城市中枢系统
- 私有化消息总线
- 设备远程管理服务
四、可配置项
继承所有 TcpService 的配置。除此之外还支持 Mqtt 服务端专有配置。
可配置项
五、支持插件
插件方法 | 功能 |
---|---|
IMqttConnectingPlugin | 当Mqtt客户端正在连接之前调用此方法。 |
IMqttConnectedPlugin | 当Mqtt客户端连接成功时调用。 |
IMqttClosingPlugin | 当Mqtt客户端正在关闭时调用。 |
IMqttClosedPlugin | 当Mqtt客户端断开连接后触发。 |
IMqttReceivingPlugin | 在收到Mqtt所有消息时触发,可以通过e.MqttMessage 获取到Mqtt 的所有消息,包括订阅、订阅确认、发布、发布确认等。 |
IMqttReceivedPlugin | 当接收到Mqtt发布消息,且成功接收时触发。可以通过e.MqttMessage 获取到Mqtt 的发布消息。 |
六、创建Mqtt服务端
6.1 简单创建
直接创建MqttTcpService,然后配置基本的监听地址和插件:
🔄 正在加载代码...
七、接收消息
在Mqtt服务端创建好之后,Mqtt组件的消息都是通过插件抛出的。你可以订阅IMqttReceivingPlugin
插件和IMqttReceivedPlugin
插件来接收消息。
正如插件说明所示,IMqttReceivingPlugin
插件可以在收到所有消息时触发,IMqttReceivedPlugin
插件可以在收到发布消息时触发。
所以如果你只关心发布成功的消息,那么可以只订阅IMqttReceivedPlugin
插件即可。
但是对于服务器来说,也可能需要获取到的消息可能是订阅、发布、取消订阅等。所以你可以通过IMqttReceivingPlugin
的e.MqttMessage
来获取到具体的消息类型。
下列将简单演示。
7.1 通过插件接收所有消息
🔄 正在加载代码...
7.2 接收发布消息
如果你只关心发布成功的消息,那么可以只订阅IMqttReceivedPlugin
插件即可:
🔄 正在加载代码...
八、发布消息
暂未实现
九、客户端管理
9.1 获取所有连接的客户端
🔄 正在加载代码...
9.2 断开指定客户端
🔄 正在加载代码...
十、订阅管理
暂未实现
十一、服务器管理
11.1 停止服务器
🔄 正在加载代码...
11.2 释放资源
🔄 正在加载代码...