Release Date: 2017-05-05

EMQ 2.2-beta.1 is now available. Many new features including Web Hook, Lua Hook and Proxy Protocol have been released in this version.

MQTT Listeners

Support to configure multiple MQTT TCP/SSL listeners for one EMQ node. For example:

    -- External TCP 1883 --> |     |
                             | EMQ | -- Internal TCP 2883 --> Service
    -- External SSL 8883-->  |     |

Configure a listener in etc/emq.conf:


    listener.tcp.${name}.acceptors = 16

    listener.tcp.${name}.max_clients = 102400

Proxy Protocol V1/2

The EMQ cluster is usually deployed behind a Load Balancer, such as HAProxy or NGINX:

                  |   |
                  | L | --TCP 1883--> EMQ
    --SSL 8883--> |   |                |
                  | B | --TCP 1883--> EMQ
                  |   |

The LB can pass the source IP, port of the TCP connection on to EMQ cluster by Proxy Protocol.

Enable Proxy Protocol support for MQTT Listener:

    ## Proxy Protocol V1/2
    ## listener.tcp.${name}.proxy_protocol = on
    ## listener.tcp.${name}.proxy_protocol_timeout = 3s

Web Hook Plugin

The Web Hook plugin emq-web-hook_ can trigger a webhook callback when a MQTT client connected to or disconnected from the broker, a MQTT message is published or acked.

Lua Hook Plugin

The Lua Hook plugin emq-lua-hook_ make it possible to extend the broker and write business logic with Lua script.

Improve the Auth/ACL Chain

We improved the Auth/ACL chain design in 2.2 release. The Auth request will be forwarded to next auth module if it is ignored by the current auth module:

               --------------           -------------           --------------
    Client --> | Redis Auth | -ignore-> | HTTP Auth | -ignore-> | MySQL Auth |
               --------------           -------------           --------------
                     |                       |                       |
                    \|/                     \|/                     \|/
               allow | deny            allow | deny            allow | deny

Support bcrypt password hash

Enable the bcrypt password hash in auth module, for example:

    auth.redis.password_hash = bcrypt

API Breaking Change

etc/emq.conf: 'mqtt.queue.' changed to 'mqtt.mqueue.'


Support 'Unsubscribe' action on WebSocket Page.

Version 2.3.9 Version 2.3.8 Version 2.3.7 Version 2.3.6 Version 2.3.5 Version 2.3.4 Version 2.3.3 Version 2.3.2 Version 2.3.1 Version 2.3.0 Version 2.3-rc.2 Version 2.3-rc.1 Version 2.3-beta.4 Version 2.3-beta.3 Version 2.3-beta.2 Version 2.3-beta.1 Version 2.2.0 Version 2.2-rc.2 Version 2.2-rc.1 Version 2.2-beta.3 Version 2.2-beta.2 Version 2.2-beta.1 Version 2.1.2 Version 2.1.1 Version 2.1.0 Version 2.1.0-rc.2 Version 2.1.0-beta.1 Version 2.1-beta Version 2.0.7 Version 2.0.6 Version 2.0.5 Version 2.0.4 Version 2.0.3 Version 2.0.2 Version 2.0.1 Version 2.0 Version 2.0-rc.3 Version 2.0-rc.2 Version 2.0-beta.3 Version 2.0-beta.2 Version 2.0-beta.1 Version 1.1.3 Version 1.1.2 Version 1.1.1 Version 1.1 Version 1.0.2 Version 1.0.1 Version 1.0 Version 0.17.1-beta Version 0.17.0-beta Version 0.16.0-beta Version 0.15.0-beta Version 0.14.1-beta Version 0.14.0-beta Version 0.13.1-beta Version 0.13.0-beta Version 0.12.3-beta Version 0.12.2-beta Version 0.12.1-beta Version 0.12.0-beta Version 0.11.0-beta Version 0.10.4-beta Version 0.10.3-beta Version 0.10.2-beta Version 0.10.1-beta Version 0.10.0-beta Version 0.9.3-alpha Version 0.9.2-alpha Version 0.9.0-alpha Version 0.9.1-alpha Version 0.8.6-beta Version 0.8.5-beta Version 0.8.4-beta Version 0.8.3-beta Version 0.8.2-alpha Version 0.8.1-alpha Version 0.8.0-alpha Version 0.7.1-alpha Version 0.7.0-alpha Version 0.6.2-alpha Version 0.6.1-alpha Version 0.6.0-alpha Version 0.5.5-beta Version 0.5.4-alpha Version 0.5.3-alpha Version 0.5.2-alpha Version 0.5.1-alpha Version 0.5.0-alpha Version 0.4.0-alpha Version 0.3.4-beta Version 0.3.3-beta Version 0.3.2-beta Version 0.3.1-beta Version 0.3.0-beta Version 0.2.1-beta Version 0.2.0 Version 0.1.5 Version 0.1.3 Version 0.1.4 Version 0.1.2 Version 0.1.1 Version 0.1.0