From: https://github.com/mqtt/mqtt.github.io/wiki/server-support
翻译如下:
本页试图记录各种MQTT服务器(代理)支持的特性。这是针对它们对MQTT的支持;其中很多服务器具有比MQTT更广泛的功能。
功能
备注
QoS 0:服务质量 0,最多传输一次。
QoS 1:服务质量1,至少传输一次。
QoS 2:服务质量2,仅仅传输一次。
auth:验证,身份验证授权。
bridge:桥接,服务器代理之间连接
$SYS:主题过滤器通配符,订阅后能够接收到所有以此通配符开头的主题的消息。
dynamic topics:动态主题
cluster:集群
Server | QoS 0 | QoS 1 | QoS 2 | auth | Bridge | $SYS | SSL | Dynamic topics | cluster | websockets | plugin system | Mqtt 5 support | Active development |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Aedes | ✔ | ✔ | ✔ | Username/Password | rm | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
AWS IoT Services | ✔ | ✔ | ✔ | Client certificates | ? | ✘ | ✔ | § | ✔ | ✔ | ✘ | ✘ | ✔ |
Apache ActiveMQ Artemis | ✔ | ✔ | ✔ | JAAS | ✘ | ✘ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
BevywiseIoTPlatform | ✔ | ✔ | ✔ | Key based | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | rm | ✘ | ✔ |
ClearBlade | ✔ | ✔ | ✔ | OAuth based User/Pass & Per-channel authorization | ? | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ✘ | ✔ |
ejabberd | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
emitter | ✔ | ✘ | ✘ | Per-channel authorization | ✘ | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ |
emqttd / EMQ | ✔ | ✔ | ✔ | Username/Password, JWT, LDAP, ClientID, … | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
flespi | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ |
GnatMQ / M2MQTT | ✔ | ✔ | ✔ | Username/Password | ✘ | ✘ | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ |
HBMQTT | ✔ | ✔ | ✔ | Username/Password, Client certificates | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ |
HiveMQ | ✔ | ✔ | ✔ | Username/Password | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
IBM IoT MessageSight | ✔ | ✔ | ✔ | Username/Password | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
IBM Watson IoT Platform | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
IBM WebSphere MQ Middleware | ✔ | ✔ | ✔ | Username/Password, client certificate | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ |
Jmqtt | ✔ | ✔ | ✔ | Username/Password, Client certificates | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ |
JoramMQ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ |
Mongoose | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ |
moquette | ✔ | ✔ | ✔ | ? | ✔ | ✘ | ✔ | ✔ | rm | ✔ | ✘ | ✘ | ✔ |
mosca | ✔ | ✔ | ✘ | ✔ | ✘ | ✘ | ✔ | ✔ | ✘ | ✔ | ✘ | ✘ | ✘ |
mosquitto | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | § | ✔ | ✔ | ✘ | ✔ |
MQTT.js | ✔ | ✔ | ✔ | § | ✘ | ✘ | ✔ | ✔ | ✘ | ✔ | ✘ | ✘ | ✔ |
MQTTnet | ✔ | ✔ | ✔ | § | § | § | ✔ | ✔ | § | § | § | rm | ✔ |
MqttWk | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ |
RabbitMQ | ✔ | ✔ | ✘ | SASL | ✘ | ✘ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
Software AG Universal Messaging | ✔ | ✔ | ✔ | ✔ | § | ✘ | ✔ | ✔ | § | rm | ✘ | ✘ | ✔ |
Solace | ✔ | ✔ | ✘ | Basic, client certificate, Kerberos | § | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ |
SwiftMQ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✔ | ✘ | ✔ | ✘ | ✔ |
TraferoTstack | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
VerneMQ | ✔ | ✔ | ✔ | Username/Password | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ |
说明
- ✔ 表示支持
- ✘ 表示不支持
- ? 表示未知
- § 表示支持但有限制
- rm 表示(roadmap)路线图规划中也就是计划支持。
不再支持或已中止的软件和服务
- 2lemetry 已被 Amazon AWS 私下购买, 请看 the techcrunch article.
- Apache ActiveMQ Apollo 已中止, 请看 this link.
- JoramMQ 似乎已中止
- IBM IoT Message gateway 现在变成了 IBM Watson IoT Platform.
- mosca 已中止
- RSMB 现在变成了 Software AG Universal Messaging. 但是,其文档奇差无比。
- TraferoTstack 自2017年以来没有更新, 已基本停止维护。
限制
- AWS IoT Services 保留了一些以
$
开头的主题. - ClearBlade 保留了一些以
$
开头的主题. - mosquitto 的集群是在后端级别实现的(比如redis, amqp等)。
- MQTT.js 接受提供用户名和密码的连接,但实际上并不对连接进行身份验证。
- Software AG Universal Messaging 提供 Active/Active 集群(通过专有协议)和桥接(通过专有协议)。
- Solace 没有提供一个broker之间专有的桥接方案.
- MQTTnet 提供客户端和服务器实现。所有特性可以按需扩展(或保留)。 这主要是面向.Net开发人员,以构建其自定义服务器和客户端实现。 但是,标准已经提供了许多功能。