455 lines
12 KiB
Markdown
455 lines
12 KiB
Markdown
|
|
emqttd ChangeLog
|
|
==================
|
|
|
|
0.8.6-beta (2015-06-17)
|
|
-------------------------
|
|
|
|
Bugfix: issue #175 - publish Will message when websocket is closed without 'DISCONNECT' packet
|
|
|
|
|
|
0.8.5-beta (2015-06-10)
|
|
-------------------------
|
|
|
|
Bugfix: issue #53 - client will receive duplicate messages when overlapping subscription
|
|
|
|
|
|
0.8.4-beta (2015-06-08)
|
|
-------------------------
|
|
|
|
Bugfix: issue #165 - duplicated message when publish 'retained' message to persistent client
|
|
|
|
|
|
0.8.3-beta (2015-06-05)
|
|
-------------------------
|
|
|
|
Bugfix: issue #158 - should queue:in new message after old one dropped
|
|
|
|
Bugfix: issue #155 - emqtt_parser.erl: parse_topics/3 should reverse topics
|
|
|
|
Bugfix: issue #149 - Forget to merge plugins/emqttd_auth_mysql from 'dev' branch to 'master' in 0.8.x release
|
|
|
|
|
|
0.8.2-alpha (2015-06-01)
|
|
-------------------------
|
|
|
|
Bugfix: issue #147 - WebSocket client cannot subscribe queue '$Q/queue/${clientId}'
|
|
|
|
Bugfix: issue #146 - emqttd_auth_ldap: fill(Username, UserDn) is not right
|
|
|
|
|
|
0.8.1-alpha (2015-05-28)
|
|
-------------------------
|
|
|
|
Client [Presence](https://github.com/emqtt/emqttd/wiki/Presence) Support and [$SYS Topics](https://github.com/emqtt/emqttd/wiki/$SYS-Topics) Redesigned!
|
|
|
|
Bugfix: issue #138 - when client disconnected normally, broker will not publish disconnected $SYS message
|
|
|
|
Bugfix: fix websocket url in emqttd/priv/www/websocket.html
|
|
|
|
Improve: etc/emqttd.config to allow websocket connections from any hosts
|
|
|
|
Improve: rel/reltool.config to exclude unnecessary apps.
|
|
|
|
|
|
0.8.0-alpha (2015-05-25)
|
|
-------------------------
|
|
|
|
[Hooks](https://github.com/emqtt/emqttd/wiki/Hooks%20Design), Modules and [Plugins](https://github.com/emqtt/emqttd/wiki/Plugin%20Design) to extend the broker Now!
|
|
|
|
Plugin: emqttd_auth_mysql - MySQL authentication plugin (issues #116, #120)
|
|
|
|
Plugin: emqttd_auth_ldap - LDAP authentication plugin
|
|
|
|
Feature: emqttd_broker to support Hooks API
|
|
|
|
Feature: issue #111 - Support 'Forced Subscriptions' by emqttd_mod_autosub module
|
|
|
|
Feature: issue #126 - Support 'Rewrite rules' by emqttd_mod_rewrite module
|
|
|
|
Improve: Support hooks, modules to extend the broker
|
|
|
|
Improve: issue #76 - dialyzer check
|
|
|
|
Improve: 'Get Started', 'User Guide', 'Developer Guide' Wiki
|
|
|
|
Improve: emqtt_topic to add join/1, feed_var/3, is_queue/1
|
|
|
|
Improve: emqttd_pooler to execute common tasks
|
|
|
|
Improve: add emqttd_sm_sup module, and use 'hash' gproc_pool to manage sessions
|
|
|
|
Tests: add more test cases for 'emqttd' app
|
|
|
|
|
|
0.7.1-alpha (2015-05-04)
|
|
-------------------------
|
|
|
|
Add doc/design/* and merge doc/* to github Wiki
|
|
|
|
Bugfix: issue #121 - emqttd cluster issuse
|
|
|
|
Bugfix: issue #123 - emqttd:unload_all_plugins/0 cannot unload any plugin
|
|
|
|
Bugfix: fix errors found by dialyzer
|
|
|
|
|
|
0.7.0-alpha (2015-05-02)
|
|
-------------------------
|
|
|
|
[MQTT over WebSocket(SSL)](https://github.com/emqtt/emqttd/wiki/MQTT-Over-WebSocket) Now!
|
|
|
|
[Plugin Achitecture](https://github.com/emqtt/emqttd/wiki/Plugin%20Design) based on OTP application
|
|
|
|
[Trace MQTT Packets or Messages](https://github.com/emqtt/emqttd/wiki/Trace%20Design) to log files
|
|
|
|
Feature: issue #40, #115 - WebSocket/SSL Support
|
|
|
|
Feature: issue #49, #105 - Plugin Architecture Support
|
|
|
|
Feature: issue #93 - Trace API Design
|
|
|
|
Improve: issue #109 - emqttd_broker should add subscribe, notify API
|
|
|
|
Improve: update README.md to add 'Goals', 'Contributors' chapters
|
|
|
|
Change: rename etc/app.config to etc/emqttd.config
|
|
|
|
Change: etc/emqttd.config changed
|
|
|
|
Bugfix: critical issue #54 - error when resume session!
|
|
|
|
Bugfix: issue #118 - error report when UNSUBSCRIBE with no topics
|
|
|
|
Bugfix: issue #117 - sys_interval = 0 config cannot work
|
|
|
|
Bugfix: issue #112 - Makefile to support build plugins
|
|
|
|
Bugfix: issue #96 - "make clean" cannot work
|
|
|
|
|
|
0.6.2-alpha (2015-04-24)
|
|
-------------------------
|
|
|
|
Bugfix: critical issue #54, #104, #106 - error when resume session
|
|
|
|
Improve: add emqttd_cm_sup module, and use 'hash' gproc_pool to register/unregister client ids
|
|
|
|
Improve: kick old client out when session is duplicated.
|
|
|
|
Improve: move mnesia dir config from etc/app.config to etc/vm.args
|
|
|
|
|
|
0.6.1-alpha (2015-04-20)
|
|
-------------------------
|
|
|
|
Integrate with [gproc library](https://github.com/uwiger/gproc) to support pool
|
|
|
|
Feature: issues#91 - should use worker_pool to handle some async work?
|
|
|
|
Feature: issues#95 - Topic filters in ACL rule should support 'eq' tag
|
|
|
|
Improve: issues#84 - emqttd_pubsub is redesigned again to protect mnesia transaction
|
|
|
|
Improve: issues#74 - ACL Support and update [ACL Design Wiki](https://github.com/emqtt/emqttd/wiki/ACL-Design)
|
|
|
|
|
|
0.6.0-alpha (2015-04-17)
|
|
-------------------------
|
|
|
|
ACL Support Now: [ACL-Design Wiki](https://github.com/emqtt/emqttd/wiki/ACL-Design)
|
|
|
|
Authentication with username, clientid Now: [Authentication Wiki](https://github.com/emqtt/emqttd/wiki/Authentication)
|
|
|
|
Seperate common MQTT library to 'emqtt' application
|
|
|
|
Redesign message pubsub, route and retain modules
|
|
|
|
Redesign mnesia database cluster
|
|
|
|
Feature: issues#47 - authentication, authorization support
|
|
|
|
Feature: issues#92 - merge emqttd_acl and emqttd_auth to emqttd_access_control
|
|
|
|
Feature: emqttd_acl_mod, emqttd_auth_mod behaviour to extend ACL, authentication
|
|
|
|
Feature: issues#85 - lager:info to log subscribe, unsubscribe actions
|
|
|
|
Feature: issues#77 - authentication with clientid, ipaddress
|
|
|
|
Improve: issues#90 - fix lager_file_backend log format, and rotate 10 log files
|
|
|
|
Improve: issues#88 - use '-mneisa_create', '-mnesia_replicate' attributes to init mneisa
|
|
|
|
Improve: issues#87 - record mqtt_user and mqtt_client is duplicated
|
|
|
|
Improve: issues#81 - redesign nodes cluster to support disc_copies mnesia tables
|
|
|
|
Improve: issues#80 - redesign emqttd_cm to handle more concurrent connections
|
|
|
|
Improve: issues#70 - how to handle connection flood? Now could support 2K+ CONNECT/sec
|
|
|
|
Change: redesign mnesia tables: message, topic, subscriber, trie, trie_node
|
|
|
|
Bugfix: issues#83 - emqttd_broker stats cannot work
|
|
|
|
Bugfix: issues#75 - careless about function name when emqttd_pubsub handle getstats message
|
|
|
|
|
|
0.5.5-beta (2015-04-09)
|
|
-------------------------
|
|
|
|
Bugfix: issue #75 - careless about function name when emqttd_pubsub handle getstats message.
|
|
|
|
Bugfix: issue #79 - cannot find topic_subscriber table after cluster with other nodes.
|
|
|
|
|
|
0.5.4-alpha (2015-03-22)
|
|
-------------------------
|
|
|
|
Benchmark this release on a ubuntu/14.04 server with 8 cores, 32G memory from QingCloud.com:
|
|
|
|
```
|
|
200K Connections,
|
|
30K Messages/Sec,
|
|
20Mbps In/Out Traffic,
|
|
200K Topics,
|
|
200K Subscribers,
|
|
|
|
Consumed 7G memory, 40% CPU/core
|
|
```
|
|
|
|
Benchmark code: https://github.com/emqtt/emqttd_benchmark
|
|
|
|
Change: rewrite emqttd_pubsub to handle more concurrent subscribe requests.
|
|
|
|
Change: ./bin/emqttd_ctl add 'stats', 'metrics' commands.
|
|
|
|
Bugfix: issue #71, #72
|
|
|
|
|
|
0.5.3-alpha (2015-03-19)
|
|
-------------------------
|
|
|
|
Bugfix: issues#72 - emqttd_cm, emqtt_sm ets:match_delete/2 with wrong pattern
|
|
|
|
|
|
0.5.2-alpha (2015-03-18)
|
|
-------------------------
|
|
|
|
Change: upgrade esockd to 2.1.0-alpha, do not tune socket buffer for mqtt connection.
|
|
|
|
|
|
v0.5.1-alpha (2015-03-13)
|
|
-------------------------
|
|
|
|
Change: upgrade esockd to v1.2.0-beta, rename 'acceptor_pool' to 'acceptors'
|
|
|
|
|
|
v0.5.0-alpha (2015-03-12)
|
|
-------------------------
|
|
|
|
RENAME 'emqtt' to 'emqttd'!
|
|
|
|
Support [Broker Bridge](https://github.com/emqtt/emqttd/wiki/Bridge-Design) Now!
|
|
|
|
Change: rename project from 'emqtt' to 'emqttd'
|
|
|
|
Change: lager:debug to dump RECV/SENT packets
|
|
|
|
Feature: emqttd_bridg, emqttd_bridge_sup to support broker bridge
|
|
|
|
Feature: emqtt_event to publish client connected/disconnected message to $SYS topics
|
|
|
|
Feature: ./bin/emqttd_ctl add more commands: listeners, broker, bridges, start_bridge, stop_bridge...
|
|
|
|
Feature: issue#57 - support to configure max packet size
|
|
|
|
Feature: issue#68 - if sys_interval = 0, emqttd_broker will not publish messages to $SYS/brokers/#
|
|
|
|
Bugfix: issue#67 - subscribe '#' to receive all messages
|
|
|
|
Bugfix: issue#64 - emqtt_app start/2: should wait_for_databases
|
|
|
|
Test: emqttd_topic_tests add more '_match_test'
|
|
|
|
|
|
v0.4.0-alpha (2015-03-10)
|
|
-------------------------
|
|
|
|
Support [$SYS Topics of Broker](https://github.com/emqtt/emqttd/wiki/$SYS-Topics-of-Broker) Now!
|
|
|
|
Feature: emqtt_broker to publish version, uptime, datetime to $SYS/brokers/# topics
|
|
|
|
Feature: emqtt_broker to publish count of clients, sessions, suscribers to $SYS/brokers/# topics
|
|
|
|
Feature: emqtt_metrics to publish bytes, packets, messages metrics to $SYS/brokers/# topics
|
|
|
|
Feature: add include/emqtt_systop.hrl
|
|
|
|
Change: emqtt_cm to count current clients
|
|
|
|
Change: emqtt_sm to count current sessions
|
|
|
|
Change: emqtt_pubsub to count current topics and suscribers
|
|
|
|
Change: emqtt_pubsub to add create/1 API
|
|
|
|
Change: emqtt_pubsub dispatch/2 to return number of subscribers
|
|
|
|
Change: emqtt_pubsub to count 'dropped' messages
|
|
|
|
Change: emqtt_opts to add merge/2 function
|
|
|
|
Test: add emqtt_serialiser_tests.erl
|
|
|
|
|
|
v0.3.4-beta (2015-03-08)
|
|
------------------------
|
|
|
|
Bugfix: emqtt_serialiser.erl cannot serialise UNSUBACK packets
|
|
|
|
|
|
v0.3.3-beta (2015-03-07)
|
|
------------------------
|
|
|
|
Bugfix: emqtt_serialiser.erl cannot serialise PINGRESP issue#60
|
|
|
|
|
|
v0.3.2-beta (2015-03-05)
|
|
------------------------
|
|
|
|
Improve: merge emqttc serialiser, parser, packet
|
|
|
|
Add: emqtt_opts to merge socket options
|
|
|
|
|
|
v0.3.1-beta (2015-03-02)
|
|
------------------------
|
|
|
|
Feature: SSL Socket Support
|
|
|
|
Feature: issue#44 HTTP API should add Qos parameter
|
|
|
|
Bugfix: issue#52 emqtt_session crash
|
|
|
|
Bugfix: issue#53 sslsocket keepalive error
|
|
|
|
Upgrade: esockd to v0.2.0
|
|
|
|
Upgrade: mochiweb to v3.0.0
|
|
|
|
|
|
v0.3.0-beta (2015-01-19)
|
|
------------------------
|
|
|
|
Feature: HTTP POST API to support 'qos', 'retain' parameters
|
|
|
|
Feature: $SYS system topics support
|
|
|
|
Change: Rewrite emqtt_topic.erl, use '', '#', '+' to replace <<"">>, <<"#">>, <<"+">>
|
|
|
|
Change: fix emqtt_pubsub.erl to match '#', '+'
|
|
|
|
Tests: emqtt_topic_tests.erl add more test cases
|
|
|
|
|
|
v0.3.0-alpha (2015-01-18)
|
|
------------------------
|
|
|
|
NOTICE: Full MQTT 3.1.1 support now!
|
|
|
|
Feature: Passed org.eclipse.paho.mqtt.testing/interoperability tests
|
|
|
|
Feature: Qos0, Qos1 and Qos2 publish and suscribe
|
|
|
|
Feature: session(clean_sess=false) management and offline messages
|
|
|
|
Feature: redeliver awaiting puback/pubrec messages(doc: Chapter 4.4)
|
|
|
|
Feature: retain messages, add emqtt_server module
|
|
|
|
Feature: MQTT 3.1.1 null client_id support
|
|
|
|
Bugfix: keepalive timeout to send will message
|
|
|
|
Improve: overlapping subscription support
|
|
|
|
Improve: add emqtt_packet:dump to dump packets
|
|
|
|
Test: passed org.eclipse.paho.mqtt.testing/interoperability
|
|
|
|
Test: simple cluster test
|
|
|
|
Closed Issues: #22, #24, #27, #28, #29, #30, #31, #32, #33, #34, #36, #37, #38, #39, #41, #42, #43
|
|
|
|
|
|
v0.2.1-beta (2015-01-08)
|
|
------------------------
|
|
|
|
pull request 26: Use binaries for topic paths and fix wildcard topics
|
|
|
|
emqtt_pubsub.erl: fix wildcard topic match bug caused by binary topic in 0.2.0
|
|
|
|
Makefile: deps -> get-deps
|
|
|
|
rebar.config: fix mochiweb git url
|
|
|
|
tag emqtt release accoding to [Semantic Versioning](http://semver.org/)
|
|
|
|
max clientId length is 1024 now.
|
|
|
|
0.2.0 (2014-12-07)
|
|
-------------------
|
|
|
|
rewrite the project, integrate with esockd, mochiweb
|
|
|
|
support MQTT 3.1.1
|
|
|
|
support HTTP to publish message
|
|
|
|
0.1.5 (2013-01-05)
|
|
-------------------
|
|
|
|
Bugfix: remove QOS_1 match when handle PUBREL request
|
|
|
|
Bugfix: reverse word in emqtt_topic:words/1 function
|
|
|
|
0.1.4 (2013-01-04)
|
|
-------------------
|
|
|
|
Bugfix: fix "mosquitto_sub -q 2 ......" bug
|
|
|
|
Bugfix: fix keep alive bug
|
|
|
|
0.1.3 (2012-01-04)
|
|
-------------------
|
|
|
|
Feature: support QOS2 PUBREC, PUBREL,PUBCOMP messages
|
|
|
|
Bugfix: fix emqtt_frame to encode/decoe PUBREC/PUBREL messages
|
|
|
|
|
|
0.1.2 (2012-12-27)
|
|
-------------------
|
|
|
|
Feature: release support like riak
|
|
|
|
Bugfix: use ?INFO/?ERROR to print log in tcp_listener.erl
|
|
|
|
|
|
0.1.1 (2012-09-24)
|
|
-------------------
|
|
|
|
Feature: use rebar to generate release
|
|
|
|
Feature: support retained messages
|
|
|
|
Bugfix: send will msg when network error
|
|
|
|
0.1.0 (2012-09-21)
|
|
-------------------
|
|
|
|
The first public release.
|
|
|