mqttPaho v1.3.0 Release Notes
Release Date: 2020-12-08 // almost 4 years ago-
๐ This release comes 20 months after 1.2.0 and incorporates a wide range of fixes and significant refactoring. Thanks to everyone who submitted issues and contributed code (list of merged pull requests below); special thanks to @alsm for his ongoing stewardship.
๐ Note that this commit changes internal message channels from buffered to unbuffered and may impact users who publish from within a message handler (the documentation has been updated to highlight the issue; running potentially blocking operations within a message handle has always been problematic).
- Add callback prior to reconnection attempt - @ajhattozxcorp
- ๐ support: $queue/ for sharing subscribe - @elvizlai
- typo - @temoto
- AddBroker: Escape % in Addresses - @Mattemagikern
- ๐ Adding support for http/https proxy when using MQTT over websockets - @reubenmiller
- ๐ Publishing freeze on connection lost was fixed - @panter-dsd
- Accept cancel at publish on resume - @kamijin-fanta
- Persistence whilst awaiting initial connection - @MattBrittan
- Correcting behavior when WriteTimout is 0 - @panter-dsd
- ๐ฐ Allow using bytes.Buffer as payload - @ctron
- Don't panic when Dial() fails with error - @alsm
- ๐ Remove use of the MessageChannelDepth value - @alsm
- check conn before closing - @alsm
- Don't send PUBLISH messages when resuming - @dusanb94
- Persist outbound subscribe packets - @robbawebba
- Resolve potential race in resume/reconnect - @MattBrittan
- ๐ณ Provide sample Docker setup for Mosquitto (simplify running tests) -@MattBrittan
- Try and handle awkardness with sub/unsub - @alsm
- ๐ Fixing linting issues - @alsm
- ๐จ Refactor of net (and related client) functions - @MattBrittan
- ๐ Remove mu Lock from WaitTimeOut - @MattBrittan
- ๐ฐ client: verify payload of SubscribeMultiple is not empty - @robbawebba
- Fix callbacks being replaced on topics with wildcards - @by v-zhuravlev
- โ๏ธ fix: Fix typos - @HowJMay
- ๐ Add module support - @thomas-tacquet
- ๐ Code consitency fixes - @thomas-tacquet
- On failed connection incorrectly checked conn stat - @MattBrittan
- Add websocket options - @smitt04
- corrects panic on 'CONNACK was not CONN_ACCEPTED' - @MattBrittan
- fix getID will cause endless loop when noFreeID - @zerolocusta
- ๐ฒ Log when message not acknowledged and comments - @MattBrittan
- ๐ Add note about blocking behavior in docs of Subscribe() - @sahib
- Resolve potential deadlocks on Resume/Error - @MattBrittan
- Avoid reusing packet IDs immediately - @MattBrittan
- Add Done() method to Token for use with select - @rittneje
- Fix panic on reconnect - @johanstokking
- ๐ Propagate MQTT connect error (fixes #356) - @akokhanovskyi
- โก๏ธ Update README and add docker example (mainly as a base for reproducing issues) - @MattBrittan
- โก๏ธ Update godoc references to pkg.go.dev - @MattBrittan
Previous changes from v1.2.0
-
Thanks to everyone that contributed by raising issues and doing pull requests
- Check that packets still exist when we resume - @alsm
- Use monotonic time for keep alive - @johnhydroware
- Don't clean up if Autoreconnect is true - @dambrisco
- Fix race condition found by race detector - @take-cheeze
- ๐ Remove the ready field from token which means less locking - undefined
- Don't short circuit Disconnect() just because of internal state - @alsm
- Protect the router channel from double closing - @alsm
- Handle errors when reading packets - @akokhanovskyi
- Correctly strip off $share/ from shared subscription topics - @alsm
- Fix according to Juho Ha findings: the channel of time.Timer should be drained only when the program is not received from the channel. - @an2deg
- Copy the callback handler before we invoke it in the go routine - @alsm
- Only cleanup messageids if cleansession is set - @alsm
- Order the filestore files when resuming by modified time - @alsm
- ๐ Support ConnectTimeout on websocket connections - @alsm
- ๐ Fixed timer leakages in Token.WaitTimeout() - @an2deg
- Ack Qos1/2 messages after the handler has returned - @alsm
- ๐ Fixed "close of nil channel" when calling Stop() on a not connected client - @an2deg
- Don't call the internal disconnect() if not connected - @alsm
- Include http.Header in normal ws connection - @alsm
- Add SessionPresent() to ConnectToken - @alsm
- Only consider connected after connecting - @alsm
- Fix data race in reconnect - @alsm
- Adding a nil check to net.go. - @ricardoatsouza
- Add ability to use per broker credentials - @amenzhinsky
- ๐ Add support for setting the Mosquitto bridge-connection option - @dmiller-tibco
- ๐คก slight adjust to make Token interface mockable - @estutzenberger
- Add is connection open method to interface - @odedva
- Add option for setting additional HTTP headers in WebSocket handshake
- ๐ Improve broker address parsing - @amenzhinsky