adafruit / Adafruit_CircuitPython_MiniMQTT

MQTT Client Library for CircuitPython
Other
72 stars 50 forks source link

add user_data to on_message callbacks #178

Closed vladak closed 7 months ago

vladak commented 8 months ago

I have a use case for the "on_message" callback where it ought to set a local state based on received message contents. However, these callbacks do not receive the user_data argument like the other callbacks do. Adding the user_data as 2nd argument would break existing code, not sure what to do about that, otherwise I'd submit a PR right away. I'd say either bite the bullet or add another message callback, however the latter is complicated by the fact that there are 2 types of message callbacks - filtered and regular. To switch the behavior during runtime, the inspect module would be needed to get function signature, however I am not sure this is available in CP.

vladak commented 8 months ago

Another issue is that the call _handle_on_message() in _wait_for_msg() passes self needlessly.

ehagerty commented 8 months ago

this would be a fantastic addition - without it, utilising callbacks to process command messages (for example) to iot devices is a hassle