This repository is archived, and no further development is expected. If you need a solution to integrate a MQTT broker with Cloud Pub/Sub, refer to https://github.com/GoogleCloudPlatform/mqtt-cloud-pubsub-connector
The MQTT Cloud Pub/Sub proxy provides a solution for utilizing Cloud Pub/Sub with IoT client devices through an MQTT interface.
MQTT is a lightweight protocol commonly used among IoT devices. The source depends on the [Moquette broker] 2 and the [Eclipse Paho MQTT Client library] 3.
The current version of the proxy utilizes Google Cloud Pub/Sub as the backend Pub/Sub service. If you're planning on running multiple instances of the proxy for scalability, you must avoid running multiple instances on the same host.
If you will be using Google Cloud Pub/Sub, you must set the GCLOUD_PUBSUB_PROJECT_ID environment variable equal to your project ID.
Clone the repository and go into the source. Execute mvn clean package
. The jar files will be
located in the target
directory.
After going into the target
directory execute the following:
java -cp mqtt-cloud-pubsub-proxy-1.0-SNAPSHOT-jar-with-dependencies.jar com.google.cloud.pubsub.proxy.moquette.Server
- Wildcard subscriptions are not supported in this version.
- Clients may receive certain messages that were published before they subscribed.
- The proxy server only supports QoS 1. Each message will be delivered at least once. It is possible to receive duplicate messages.
- Advanced MQTT features, namely retainable messages and last will messages, are not supported for the multiple server setup.