You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

486 lines
12 KiB

5 years ago
History
=======
## 0.29.0
* Effectively support offline packets expiration #235 #236 by @mazhack.
## 0.28.2
* Do not store qos 0 packets for offline delivery #229 #230 by @mazhack.
* Added session present flag on CONNACK #231 by @mazhack).
## 0.28.1
* Fixed "stats should not be published by default in embedded mode"
https://github.com/mcollina/mosca/pull/217 by @stefanobaghino.
* ASCII art on start.
## 0.28.0
* Updated dependencies.
* node 0.12 support.
## 0.27.1
* Upgraded browserify to v8.1.1.
## 0.27.0
* Updated MQTT.js to 1.0.0.
* Extracted
[pbkdf2-password](https://www.npmjs.com/package/pbkdf2-password).
* Updated Dockerfile.
## 0.26.2
* Improved error handling in case of database errors.
## 0.26.1
* Improved error handling in case of database errors.
## 0.26.0
* Changed how Mosca is configured
[#200](https://github.com/mcollina/mosca/pull/200)
* Fail authentication without username & password
* Changed how data is stored inside leveldb in embedded mode, with
simplified TTL handling
* Updated dependencies
## 0.25.1
* Fixed a security bug in the will authorization handling.
## 0.25.0
* Fixed problematic bug with MongoDB that could lead to message loss.
* Updated dependencies.
## 0.24.1
* Fix for RabbitMQ support
[#189](https://github.com/mcollina/mosca/issues/189).
## 0.24.0
* Updated dependencies (Redis, MongoDB, ecc)
* Close clients with the same `clientId` even if they are connected to another Mosca
[#182](https://github.com/mcollina/mosca/issues/182)
[#92](https://github.com/mcollina/mosca/issues/92).
## 0.23.2
* Fixed offline mode for Redis
[#128](https://github.com/mcollina/mosca/issues/128).
## 0.23.1
* Fixed JSON-based authorizer to support generic 'authorize all'
catchall.
## 0.23.0
* Use an unique id ([shortid](http://npm.im/shortid)) for server-level messageId.
[#176](https://github.com/mcollina/mosca/issues/176).
* Removed node-uuid in favor of shortid.
* Bumped browserify to v4.2.0.
* Allow `persistence.factory` key to be a string in the configuration/options
[#171](https://github.com/mcollina/mosca/issues/171).
* Do not store inflight packets on disconnection
[#175](https://github.com/mcollina/mosca/issues/175).
* Send suback 0x80 if a subscription fails
[#170](https://github.com/mcollina/mosca/issues/170).
* Moved pre-commit into devDependencies.
[#177](https://github.com/mcollina/mosca/issues/177).
Thanks to [Morgan Cheng](https://github.com/mocheng) for all the work
spent to make Mosca rock solid on Redis.
## 0.22.0
* Redis packets TTL (offline).
* Require redis > 2.6.
* Added `server#authorizeForward` method
[#168](https://github.com/mcollina/mosca/issues/168).
* Topics are no longer normalised from e.g a///topic to a/topic. This
matches the behaviour as clarified by the Oasis MQTT spec. This will
lead to unexpected behaviour if you were using topics of this form.
## 0.21.9
* _Really_ fixed LevelUp and Memory persistence for offline messages, previously
only one offline message per second was allowed
[#160](https://github.com/mcollina/mosca/issues/160).
* Bumped levelup, memdown, level-ttl dependencies.
## 0.21.8
* Fix a crash if a client unsubscribes before subscribing
[#156](https://github.com/mcollina/mosca/issues/156).
* Fixed LevelUp and Memory persistence for offline messages, previously
only one offline message per second was allowed.
## 0.21.7
* Added the `db` option to Redis persistance
[#150](https://github.com/mcollina/mosca/issues/150).
* Fixed Redis persistence for offline messages, previously
only the latest offline message was delivered
[#151](https://github.com/mcollina/mosca/issues/151).
## 0.21.6
* Bumped MQTT.js dependency to v0.3.10.
* Bumped MOWS dependency to v0.0.6.
## 0.21.5
* `authorizePublish` can return a Buffer to change the payload
[#146](https://github.com/mcollina/mosca/issues/146).
* Handled authentication errors
[#143](https://github.com/mcollina/mosca/issues/143).
## 0.21.4
* Fixed wrong count of connected clients
[#135](https://github.com/mcollina/mosca/issues/135).
## 0.21.3
* Fixed crash when started without a persistance.
* Emit will message if the keepalive timer fails.
* Wrapping mows for browserify when used in embedded mode.
## 0.21.2
* Upgrade to MQTT.js 0.3.9.
* Fix authorization with binary credentials.
## 0.21.1
* Added 'host' parameter to mosca.Server to specify the host
to listen to.
* Added --host CLI option.
## 0.21.0
* Fixed offline messaging
[#130](https://github.com/mcollina/mosca/pull/130).
* Bumped Ascoltatori to 0.15.0.
## 0.20.3
* Fixed a packet duplication issue with Redis.
* Fixed a MongoDB error/crash with offline subscriptions.
* Added full MongoDB and Redis mosca.Server tests.
## 0.20.2
* Update keepalive timer after a PUBACK.
* Set the 'grace' period before a keepalive disconnection to a half keepalive.
## 0.20.1
* Serve the 'index.html' file in the static folder as '/'.
## 0.20.0
* No more duplicates over the same TCP connection.
* Do not loose data on crashes.
* Updated dependencies.
## 0.19.1
* Correctly remove the resend timer.
* Serve the mqtt.js bundle when installed globally.
* Added loggers for HTTP requests.
## 0.19.0
* Expose only the standalone `mqtt` in the browserified bundle.
* Generate the bundle in the `postinstall` NPM hook.
* Removed express dependency.
## 0.18.0
* Updated dependencies.
* Fixed keepalive=0 according to MQTT 3.1.1 spec.
* Downgraded logging of publish and forwarding to 'debug' and 'trace'
respectively.
* Fixed # and $SYS/# subscribtions and $SYS/ topic delivery
[#105](https://github.com/mcollina/mosca/pull/105).
* Expose `require("mows")` in the browserify bundle instead of the
standalone `mqtt`.
## 0.17.7
* Fixed '+' subscriptions with retained messages.
## 0.17.6
* Added missing `'unsubscribed'` event in the Server.
## 0.17.5
* Fixed an infinite loop during will messages delivery if the client was
connected through mqtt31ws.js
[#100](https://github.com/mcollina/mosca/pull/100).
## 0.17.4
* Updated MOWS (Mqtt Over WebSockets) to v0.0.4
[#99](https://github.com/mcollina/mosca/pull/99).
## 0.17.3
* Alignment with Mosquitto $SYS topicspace
[#95](https://github.com/mcollina/mosca/pull/95).
## 0.17.2
* Added $SYS/<broker_id>/version, $SYS/<broker_id>/uptime
and simplified the broker id.
[#95](https://github.com/mcollina/mosca/pull/95).
## 0.17.1
* From /$SYS to $SYS, removed the '/' prefix for the metadata
[#94](https://github.com/mcollina/mosca/pull/94).
## 0.17.0
* Added /$SYS/ topic and some monitoring data
[#89](https://github.com/mcollina/mosca/pull/89).
## 0.16.1
* Pass the client to the published event and callback.
## 0.16.0
* Added the `mosca.Server#publish()` function.
## 0.15.0
* Removed limit of 23 bytes for the client id as in MQTT 3.1.1.
* Removed two possible race conditions for offline messages.
The race conditions were:
1. the restoration of all subscriptions was done after connack,
which
means that there was a tiny window were a message could be lost.
2. the puback for a QoS 1 packet was sent before the write was
concluded.
* Dumped node v0.8 support forever.
## 0.14.4
* Restored 'clientDisconnected' event in case of errors
[#79](https://github.com/mcollina/mosca/pull/79).
* Fixed multiple offline message delivery
[#80](https://github.com/mcollina/mosca/pull/80).
## 0.14.3
* Fixed retained messages support in windows
[#75](https://github.com/mcollina/mosca/pull/75).
## 0.14.2
* README fixes.
## 0.14.1
* Bumped Ascoltatori to 0.12.0 to support a more compact mongo url.
* Updated some patch-level dependencies.
* Added test coverage.
## 0.14.0
* Added `mosca.Server#published` callback to adding behavior before QoS
1 PUBACK [#72](https://github.com/mcollina/mosca/pull/72).
* Doc fixes.
* Updated LevelUp to 0.18.1 and LevelDown 0.10.1 to avoid a memleak.
## 0.13.4
* Secure Websocket support [#71](https://github.com/mcollina/mosca/pull/71)
## 0.13.3
* Avoid crash if an error happens after client
disconnection [#67](https://github.com/mcollina/mosca/issues/67).
## 0.13.2
* Avoid crash using MongoDB backend
[#66](https://github.com/mcollina/mosca/issues/66).
* Bumped Ascoltatori to v0.11.5.
## 0.13.1
* Do not duplicate messages over a single client
[#44](https://github.com/mcollina/mosca/issues/63).
## 0.13.0
* mqtt over websocket support.
[#44](https://github.com/mcollina/mosca/issues/44).
* MongoDB persistence deletes old retained messages
[#61](https://github.com/mcollina/mosca/issues/61).
## 0.12.1
* Support both a config file and command-line options,
fixes [#58](https://github.com/mcollina/mosca/issues/58) and
[#60](https://github.com/mcollina/mosca/issues/60).
* Fixes redis persistence for unknown client ids
[#59](https://github.com/mcollina/mosca/pull#59).
## 0.12.0
* Close forcefully a connecting client
[#57](https://github.com/mcollina/mosca/pull/57) by
(@chriswiggins)[https://github.com/chriswiggins].
* Updated LevelUp to 0.16.0.
* Updated Level-Sublevel to 5.1.1.
* Better persistence for the subscriptions.
## 0.11.0
* TLS support thanks to (@samirnaik)[https://github.com/samirnaik].
* Send dup flag for resent messages.
## 0.10.0
* Updated MQTT.js to v0.3.0.
## 0.9.5
* Consistent support of the "ready" callback in the persistences
implementations (Memory and Mongo).
* Fixed loading of a config file from an absolute path.
* README fixes.
## 0.9.4
* New README, thanks to [Andrea Reginato](https://github.com/andreareginato).
* Removed explicit dependency to level-fix-range, as the original bug
was solved in level-sublevel v4.8.1.
## 0.9.3
* Upgraded LevelUp to 0.12.0.
* Fixed level-fix-range dependency to avoid a bug
https://github.com/dominictarr/level-sublevel/issues/21.
* Improved Logger creation in Server.
* Improved Logger handling inside clients.
## 0.9.2
* Added the ability to pass a custom Ascoltatore to `mosca.Server`.
* `mosca.Server` callbacks now yields the server.
* `mosca.Server` can now be called like a function.
## 0.9.1
* 'test/topic' is different from '/test/topic'
* Resetting ping timer on publish, subcribe, unsubscribe:
[#47](https://github.com/mcollina/mosca/pull/47).
## 0.9.0
* Bumped Ascoltatori to 0.11.0.
* Improved logging for each client.
* Fixed multiple topic naming, mainly 'test/topic' and 'test/topic/'
should be the same
[#46](https://github.com/mcollina/mosca/pull/46).
* Better handling of defaults
[#39](https://github.com/mcollina/mosca/pull/39).
* Enforcing client identifier length
[#33](https://github.com/mcollina/mosca/pull/33).
## 0.8.2
* Passing the correct Client object to `authorizePublish`,
[#43](https://github.com/mcollina/mosca/pull/43).
## 0.8.1
* Refactored the Server-Persistence wiring interface
to solve some spurious test failures.
## 0.8.0
* Updated Ascoltatori to 0.8.0.
## 0.7.3
* Fixed MongoDB persistance tests on Travis.
* Fixed spurious errors in Redis persistance.
## 0.7.2
* More README fixes.
## 0.7.1
* Typo fix, from persistance to persistence.
## 0.7.0
* Added persistance support
[#36](https://github.com/mcollina/mosca/pull/36).
* Updated Ascoltatori to 0.7.0.
## 0.6.0
* Extracted a MoscaClient.
## 0.5.0
* Bunyan support for logging.
* Updated minimum MQTT.js version to 0.2.10.
## 0.4.3
* Passing the MQTT packet details to Ascoltatori
[#30](https://github.com/mcollina/mosca/pull/30) by
[@davedoesdev](https://github.com/davedoesdev).
## 0.4.2
* Not passing the options to subscribe anymore
[@davedoesdev](https://github.com/davedoesdev).
* Updated Ascoltatori to 0.6.0.
## 0.4.1
* Fixed the NPM script.
## 0.4.0
* Pass the QoS level to the parent MQTT server
(https://github.com/mcollina/mosca/pull/26), thanks to
[@davedoesdev](https://github.com/davedoesdev).
## 0.3.0
* Node v0.10 support
* User authentication and authorization.
## 0.2.0
* QoS 1 (without storage) support
* Will messages support
## 0.1.1
* Bug fixes
## 0.1.0
* Initial release