v1.3.0
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