Paho/Go Client Design
This page to keep a record of ideas and proposals for changes to the internals and API of the Paho Go client.
- In line with the new embedded C client I was thinking it would be good to change the API so that the programmer provides a *net.Conn to the library rather than passing a URL, this pushes back some of the logic of handling connections to the app programmer, but at the same time doesn't tie the client to particular transports. For example there is no reason we could operate over a UnixConn except that we don't explicitly support it currently.
- Move to use the stdlib log package for trace
- Change the keepalive mechanism to use a timer that is reset via a channel and ensure that we account for long lasting send/recv of large packets, have an "in progress" status?
- Use quite a lot of mutexes, we should see if they are all necessary or if some cant be replaced with the use of channels instead (and waitgroups)