Skip to content

saturnism/cloud-pubsub-mqtt-proxy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is MQTT Cloud Pub/Sub Proxy?

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.

Building from source

Clone the repository and go into the source. Execute mvn clean package. The jar files will be located in the target directory.

Running the server

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

Known Issues

  1. Wildcard subscriptions are not supported in this version.
  2. Clients may receive certain messages that were published before they subscribed.
  3. The proxy server only supports QoS 1. Each message will be delivered at least once. It is possible to receive duplicate messages.
  4. Advanced MQTT features, namely retainable messages and last will messages, are not supported for the multiple server setup.

About

A proxy between Cloud Pub/Sub and MQTT

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%