There are some systems that return information on a failed exception and thus the client wants access to the full set of ACK information. Specifically the user properties.
- adding client and server wrappers to verify the clientid starts with the testname
- adding disposable baseclass
- clear disconnect handler from client so it does not try to reconnect after it is disposed
- moved code from dispose to cleanup in case it is called in a stop method as dispose may only be called once while start / stop may be called multiple times
* Added interface IMqttRetainedMessagesManager to allow for different
retained messages manager implementations. The interface copies almost
exactly the current MqttRetainedMessagesManager implementation.
* Added IMqttRetainedMessagesManager.Start() to configure the provided
IMqttRetainedMessagesManager outside the constructor. This method returns
Task because some implementations that use external storage may be slow on
initialization (e.g., connect to a database).
* Modified MqttRetainedMessagesManager to implement new interface.
- the Info level for publishing subscriptions is quite noisy
- previously this wasn't a problem because subscription processing was buffered, now the message is logged for nearly every single un/subscription that is made
- all other frequently recurring log events are also on level Verbose