mqttPaho v1.3.0 Release Notes
Release Date: 2020-12-08 // over 3 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