server support

Douglas Gibbons edited this page Jul 8, 2017 · 39 revisions
Clone this wiki locally

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
Trafero Tstack
mosquitto §
RSMB ?
WebSphere MQ ? ? ?
HiveMQ
Apache Apollo ? ?
Apache ActiveMQ
Software AG Universal Messaging rm
RabbitMQ ? ? ?
Solace §
MQTT.js §
moquette ? ? ? rm
mosca ? ? ? ?
IBM MessageSight §
2lemetry §
GnatMQ
JoramMQ
VerneMQ
emqttd
HBMQTT
Mongoose ? ? ? ? ? ? ? ? ?
emitter §
Bevywise IoT Platform rm rm

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.