# `OffBroadway.EMQTT.MessageHandler`
[🔗](https://github.com/Intility/off_broadway_emqtt/blob/v0.3.0/lib/off_broadway/emqqt/message_handler.ex#L1)

Behaviour for handling messages received from the MQTT broker.

Custom message handlers can transform MQTT messages into Broadway messages.
The default implementation extracts the payload as data and remaining fields as metadata.

# `ack_ref`

```elixir
@type ack_ref() :: any()
```

# `message`

```elixir
@type message() :: map()
```

# `handle_message`

```elixir
@callback handle_message(message :: message(), ack_ref :: ack_ref(), opts :: keyword()) ::
  Broadway.Message.t()
```

# `handle_message`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
