各种MQTT server功能比較

时间:2022-09-02 09:57:35

this page attempts to document the features that various MQTT servers (brokers) support. This is specific to their MQTT support; many of these servers have much wider capabilities beyond just MQTT.

Capabilities

Server QoS 0 QoS 1 QoS 2 auth bridge $SYS SSL dynamic topics cluster websockets plugin system
2lemetry §
Apache ActiveMQ
Apache ActiveMQ Artemis
Bevywise IoT Platform rm rm
emitter §
emqttd
flespi
GnatMQ
HBMQTT
HiveMQ
IBM MessageSight §
JoramMQ
Mongoose ? ? ? ? ? ? ? ? ?
moquette ? ? ? rm
mosca ? ? ? ?
mosquitto §
MQTT.js §
MqttWk ?
RabbitMQ ? ? ?
RSMB ?
Software AG Universal Messaging rm
Solace §
SwiftMQ
Trafero Tstack
VerneMQ
WebSphere MQ ? ? ?

Key: ✔ supported ✘ not supported ? unknown § see limitations rm roadmap (planned)

Limitations

  • MQTT.js will accept connections with username and password supplied, but do not actually authenticate the connection

  • IBM MessageSight supports a High-Availability mode which provides the redundancy advantage of a cluster, but does not support any sort of load balancing for MQTT.

  • 2lemetry uses domains, where the first topic segment is the domain name. The $SYS topic space is under the domain (i.e. com.example/$SYS/#)

  • Solace does provide a proprietary bridge solution between brokers.

  • mosquitto clustering is achieved on backend level (redis, amqp, etc).

  • Software AG Universal Messaging provides Active/Active clustering (over a proprietary protocol) and bridging (over a proprietary protocol).

Potentially should add columns to track: LWT; additional protocols (WMQ, AMQP, MQTTs etc)

This is in need of expanding. Please add known information about known brokers to this table and include any known limitations below it.

 

https://github.com/mqtt/mqtt.github.io/wiki/server-support