# Enable message support through MQTT

Message Queuing Telemetry Transport (MQTT) is a lightweight publish-subscribe protocol for communication between devices. Qualcomm IM SDK supports the MQTT protocol to send messages to a host device.

After establishing communication with an MQTT server, the `qtimsghub` component of Qualcomm IM SDK can be used to publish messages or subscribe to messages from the server machine.

## Prerequisites

Do the following to enable an M2M session between an MQTT server running on the Linux host computer and the Qualcomm EVK acting as the client.

Note

These use cases require a functional MQTT server.

1. Install and configure the Mosquitto server on a Linux machine.

    1. Install the Mosquitto server.

sudo apt-get install mosquitto
            Copy to clipboard

        For more information, see [Download | Eclipse Mosquitto](https://mosquitto.org/download/).

Note

If you don’t need to set a username and password, you can skip steps (b) and (c), and proceed with step (d).
    2. Create the username and password on the server side.

sudo mosquitto_passwd -c /etc/mosquitto/pwfile <username>
            Copy to clipboard
    3. Configure the Mosquitto server.

        1. Add the following text in the `/etc/mosquitto/mosquitto.conf` file.

password_file /etc/mosquitto/pwfile
                Copy to clipboard

allow_anonymous false
                Copy to clipboard

listener 1883
                Copy to clipboard
    4. Start the Mosquitto server.

mosquitto -c <config file path to start mosquitto server> (another method: systemctl restart mosquitto)
            Copy to clipboard
2. Create a plugin (client) configuration file on the client side (Qualcomm EVK).

    Create the configuration file at `path /usr/local/`, and add the following text in the configuration file.

mqtt_version = MQTTV311
        username = <username set using mosquitto_passwd before>
         password = <password set using mosquitto_passwd before>
        Copy to clipboard

![../../_images/MQTT_config.png](data:image/png;base64,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)
3. Ensure that the device and Linux machine (server) are in the same network, and they can communicate with each other.

## Message in command line with topic

Before you run the commands, ensure that the configuration file is at the appropriate path.

1. Subscriber:

gst-launch-1.0 -e qtimsgsub topic=tmp host=<mosquitto server ip> port=1883 protocol=mqtt config=/usr/local/config ! filesink location=/opt/sub_message.txt
        Copy to clipboard
2. Publisher:

gst-launch-1.0 -e fakesrc ! qtimsgpub topic=tmp message="Tmp Message" host=<mosquitto server ip> port=1883 protocol=mqtt config=/usr/local/config
        Copy to clipboard

To stop the use case, use **CTRL + C**.

## Message in file with topic

Before you run the commands, ensure the following:

- The configuration file is at the appropriate path.
- The `message.txt` file has content that can be published.

1. Subscriber:

gst-launch-1.0 -e qtimsgsub topic=tmp host=<mosquitto server ip> port=1883 protocol=mqtt config=/usr/local/config ! filesink location=/opt/sub_message.txt
        Copy to clipboard
2. Publisher:

echo "Message in file" > /usr/local/message.txt
        Copy to clipboard

gst-launch-1.0 -e filesrc location=/usr/local/message.txt ! qtimsgpub topic=tmp host=<mosquitto server ip> port=1883 protocol=mqtt config=/usr/local/config
        Copy to clipboard

To stop the use case, use **CTRL + C**.

## **Message in pipeline–JSON format**

Before you run the commands, ensure the following:

- The configuration file is at the appropriate path.
- The AI model, engine, and an MP4 file are available.
- Configure display:

export XDG_RUNTIME_DIR=/run/user/1000 && export WAYLAND_DISPLAY=wayland-1
        Copy to clipboard
- Push the models and label files to your device. For more information, see [Prerequisites](https://docs.qualcomm.com/doc/80-80022-50/topic/download-model-and-label-files.html).

1. Subscriber:

gst-launch-1.0 -e qtimsgsub topic=tmp host=<mosquitto server ip> port=1883 protocol=mqtt config=/usr/local/config ! filesink location=/usr/local/sub.json async=false
        Copy to clipboard
2. Publisher:

gst-launch-1.0 -e  filesrc location=/etc/media/<h264_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;"  model=/etc/models/local/mobilenet_v2_1.0_224_quant.tflite ! queue ! qtimlvclassification threshold=60.0 results=3 module=mobilenet labels=/etc/labels/local/mobilenet.labels constants="Mobilenet,q-offsets=<58.0>,q-scales=<0.09889253973960876>;" ! text/x-raw ! queue ! qtimsgpub topic=tmp host=<client-ip-address> port=1883 protocol=mqtt config=/etc/configs/local/config json=true async=false
        Copy to clipboard

To stop a use case, use **CTRL + C**.

Last Published: May 14, 2026

[Previous Topic
Run HTTP use cases](https://docs.qualcomm.com/bundle/publicresource/80-80022-50/topics/run-http-use-cases.md)