--- tag: docs type: other title: Subscription Callback --- If the client is used to subscribe to topics, a callback function must be provided in the constructor. This function is called when new messages arrive at the client. The callback function has the following signature: void callback(const char[] topic, byte* payload, unsigned int length) ##### Parameters - topic const char[] - the topic the message arrived on - payload byte[] - the message payload - length unsigned int - the length of the message payload Internally, the client uses the same buffer for both inbound and outbound messages. After the callback function returns, or if a call to either `publish` or subscribe is made from within the callback function, the `topic` and `payload` values passed to the function will be overwritten. The application should create its own copy of the values if they are required after the callback returns.