各类MQTT代理服务器特性对比


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)路线图规划中也就是计划支持。

不再支持或已中止的软件和服务

限制

  • AWS IoT Services 保留了一些以 $ 开头的主题.
  • ClearBlade 保留了一些以 $ 开头的主题.
  • mosquitto 的集群是在后端级别实现的(比如redis, amqp等)。
  • MQTT.js 接受提供用户名和密码的连接,但实际上并不对连接进行身份验证。
  • Software AG Universal Messaging 提供 Active/Active 集群(通过专有协议)和桥接(通过专有协议)。
  • Solace 没有提供一个broker之间专有的桥接方案.
  • MQTTnet 提供客户端和服务器实现。所有特性可以按需扩展(或保留)。 这主要是面向.Net开发人员,以构建其自定义服务器和客户端实现。 但是,标准已经提供了许多功能。