- Effectively support offline packets expiration #235 #236 by @mazhack.
- Do not store qos 0 packets for offline delivery #229 #230 by @mazhack.
- Added session present flag on CONNACK #231 by @mazhack).
- Fixed "stats should not be published by default in embedded mode" #217 by @stefanobaghino.
- ASCII art on start.
- Updated dependencies.
- node 0.12 support.
- Upgraded browserify to v8.1.1.
- Updated MQTT.js to 1.0.0.
- Extracted pbkdf2-password.
- Updated Dockerfile.
- Improved error handling in case of database errors.
- Improved error handling in case of database errors.
- Changed how Mosca is configured #200
- Fail authentication without username & password
- Changed how data is stored inside leveldb in embedded mode, with simplified TTL handling
- Updated dependencies
- Fixed a security bug in the will authorization handling.
- Fixed problematic bug with MongoDB that could lead to message loss.
- Updated dependencies.
- Fix for RabbitMQ support #189.
- Updated dependencies (Redis, MongoDB, ecc)
- Close clients with the same
clientId
even if they are connected to another Mosca #182 #92.
- Fixed offline mode for Redis #128.
- Fixed JSON-based authorizer to support generic 'authorize all' catchall.
- Use an unique id (shortid) for server-level messageId. #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. - Do not store inflight packets on disconnection #175.
- Send suback 0x80 if a subscription fails #170.
- Moved pre-commit into devDependencies. #177.
Thanks to Morgan Cheng for all the work spent to make Mosca rock solid on Redis.
- Redis packets TTL (offline).
- Require redis > 2.6.
- Added
server#authorizeForward
method #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.
- Really fixed LevelUp and Memory persistence for offline messages, previously only one offline message per second was allowed #160.
- Bumped levelup, memdown, level-ttl dependencies.
- Fix a crash if a client unsubscribes before subscribing #156.
- Fixed LevelUp and Memory persistence for offline messages, previously only one offline message per second was allowed.
- Added the
db
option to Redis persistance #150. - Fixed Redis persistence for offline messages, previously only the latest offline message was delivered #151.
- Bumped MQTT.js dependency to v0.3.10.
- Bumped MOWS dependency to v0.0.6.
authorizePublish
can return a Buffer to change the payload #146.- Handled authentication errors #143.
- Fixed wrong count of connected clients #135.
- Fixed crash when started without a persistance.
- Emit will message if the keepalive timer fails.
- Wrapping mows for browserify when used in embedded mode.
- Upgrade to MQTT.js 0.3.9.
- Fix authorization with binary credentials.
- Added 'host' parameter to mosca.Server to specify the host to listen to.
- Added --host CLI option.
- Fixed offline messaging #130.
- Bumped Ascoltatori to 0.15.0.
- Fixed a packet duplication issue with Redis.
- Fixed a MongoDB error/crash with offline subscriptions.
- Added full MongoDB and Redis mosca.Server tests.
- Update keepalive timer after a PUBACK.
- Set the 'grace' period before a keepalive disconnection to a half keepalive.
- Serve the 'index.html' file in the static folder as '/'.
- No more duplicates over the same TCP connection.
- Do not loose data on crashes.
- Updated dependencies.
- Correctly remove the resend timer.
- Serve the mqtt.js bundle when installed globally.
- Added loggers for HTTP requests.
- Expose only the standalone
mqtt
in the browserified bundle. - Generate the bundle in the
postinstall
NPM hook. - Removed express dependency.
- 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.
- Expose
require("mows")
in the browserify bundle instead of the standalonemqtt
.
- Fixed '+' subscriptions with retained messages.
- Added missing
'unsubscribed'
event in the Server.
- Fixed an infinite loop during will messages delivery if the client was connected through mqtt31ws.js #100.
- Updated MOWS (Mqtt Over WebSockets) to v0.0.4 #99.
- Alignment with Mosquitto $SYS topicspace #95.
- Added $SYS/<broker_id>/version, $SYS/<broker_id>/uptime and simplified the broker id. #95.
- From /$SYS to $SYS, removed the '/' prefix for the metadata #94.
- Added /$SYS/ topic and some monitoring data #89.
- Pass the client to the published event and callback.
- Added the
mosca.Server#publish()
function.
- 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:
- the restoration of all subscriptions was done after connack, which means that there was a tiny window were a message could be lost.
- the puback for a QoS 1 packet was sent before the write was concluded.
- Dumped node v0.8 support forever.
- Restored 'clientDisconnected' event in case of errors #79.
- Fixed multiple offline message delivery #80.
- Fixed retained messages support in windows #75.
- README fixes.
- Bumped Ascoltatori to 0.12.0 to support a more compact mongo url.
- Updated some patch-level dependencies.
- Added test coverage.
- Added
mosca.Server#published
callback to adding behavior before QoS 1 PUBACK #72. - Doc fixes.
- Updated LevelUp to 0.18.1 and LevelDown 0.10.1 to avoid a memleak.
- Secure Websocket support #71
- Avoid crash if an error happens after client disconnection #67.
- Avoid crash using MongoDB backend #66.
- Bumped Ascoltatori to v0.11.5.
- Do not duplicate messages over a single client #44.
- Support both a config file and command-line options, fixes #58 and #60.
- Fixes redis persistence for unknown client ids #59.
- Close forcefully a connecting client #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.
- TLS support thanks to (@samirnaik)[https://github.com/samirnaik].
- Send dup flag for resent messages.
- Updated MQTT.js to v0.3.0.
- 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.
- New README, thanks to Andrea Reginato.
- Removed explicit dependency to level-fix-range, as the original bug was solved in level-sublevel v4.8.1.
- Upgraded LevelUp to 0.12.0.
- Fixed level-fix-range dependency to avoid a bug dominictarr/level-sublevel#21.
- Improved Logger creation in Server.
- Improved Logger handling inside clients.
- 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.
- 'test/topic' is different from '/test/topic'
- Resetting ping timer on publish, subcribe, unsubscribe: #47.
- 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.
- Better handling of defaults #39.
- Enforcing client identifier length #33.
- Passing the correct Client object to
authorizePublish
, #43.
- Refactored the Server-Persistence wiring interface to solve some spurious test failures.
- Updated Ascoltatori to 0.8.0.
- Fixed MongoDB persistance tests on Travis.
- Fixed spurious errors in Redis persistance.
- More README fixes.
- Typo fix, from persistance to persistence.
- Added persistance support #36.
- Updated Ascoltatori to 0.7.0.
- Extracted a MoscaClient.
- Bunyan support for logging.
- Updated minimum MQTT.js version to 0.2.10.
- Passing the MQTT packet details to Ascoltatori #30 by @davedoesdev.
- Not passing the options to subscribe anymore @davedoesdev.
- Updated Ascoltatori to 0.6.0.
- Fixed the NPM script.
- Pass the QoS level to the parent MQTT server (#26), thanks to @davedoesdev.
- Node v0.10 support
- User authentication and authorization.
- QoS 1 (without storage) support
- Will messages support
- Bug fixes
- Initial release