Eclipse Paho 0.20.0 (Go v5 client)

Release Date
Compatibility

Breaking changes include (but are not limited to):

paho

  • paho.Publish when publishing at QOS1/2 the packet identifier (if acquired) was released if the context expired regardless of whether the message had been sent (potentially leading to reuse of the ID and in breach of the spec). This has been changed such that once transmitted, the message will be acknowledged regardless of the publish context (but the Publish function will only block until the context expires). The Errors returned now better indicate what occurred.
  • router - this should work as-is for most users in v0.20, however ClientConfig.Router will be removed in a future release. Please replace ClientConfig.Router with ClientConfig.OnPublishReceived (which is more flexible; note that you can still use StandardRouter - see autopaho/examples/router).
  • ClientConfig is now private (accessing this led to race conditions).
  • Pinger interface has changed (and DefaultPinger has been rewritten).
  • ClientOptions.MIDs has been removed.

autopaho

  • autopaho CleanSession flag. Previously CleanSession was hardcoded to true; this is no longer the case and the default is false. Whilst his is potentially a breaking change, SessionExpiryInterval will default to 0 meaning the session will be removed when the connection drops. As a result this change should have no impact on most users; it may be a problem if another application has connected with SessionExpiryInterval>0 meaning a session exists.