# 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 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 (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 = password = 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= 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= 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= 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= 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-80021-50/topic/download-model-and-label-files.html). 1. Subscriber: gst-launch-1.0 -e qtimsgsub topic=tmp host= 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/.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= 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: Mar 26, 2026 [Previous Topic Run HTTP use cases](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/run-http-use-cases.md)