Publish
ClearBlade uses the Pub/Sub Golang library, which leverages a persistent TCP connection under the covers.
...
Code Block |
---|
{ "credentials_map": { // This is the service account JSON object "type": "service_account", "project_id": "myprojectid", "private_key_id": "blahblahblah", "private_key": "<priv_key>", "client_email": "a@a.com", "client_id": "9126871624161341", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dahjkdhajkd%40dajsdgajdadsad.iam.gserviceaccount.com" }, "project_id": "myprojectid", "topics": [ // This is to send data to Google Pub/Sub {"path": "iotdemo"}, // Non IoT Core topic {"path": "/devices/+/events", "type": 1, "target": "performance-testing"}, // IoT Core topic {"path": "/devices/+/events/sub", "type": 1, "target": "performance-testing-sub", "sub_folder": "sub"}, // iot core topic {"path": "/devices/+/state", "type": 2, "target": "performance-testing-state"} // IoT Core topic ], "forwarders": { // This is to receive Google Pub/Sub messages "ack_strategy": 0, "poll_rate": 5000, "max_messages_per_poll": 2, "subscriptions": [ { "mqtt_topic": "pubsub", "pubsub_subscription": "test-sub" } ] }, } |
path
is the topic the Pub/Sub client will subscribe to internally to the ClearBlade broker. type
is the topic type. No type represents a non-IoT Core topic. 1 is for event
and 2 is for state
. target
is the topic the Pub/Sub client will publish to in Pub/Sub. sub_folder
is for the event's topic if it has a subfolder.
...
GET and DELETE support only. GET obtains all Pub/Sub connections for that system, and DELETE deletes all.
Receiving data
The following parameters exist for setting up your Google Pub/Sub forwarders to ClearBlade MQTT:
ack_strategy: 0 = ack immediately, 1 = never ack. for now, 0 should always be used
poll_rate: time (ms) between sending message batches to the broker. zero will send messages immediately.
max_messages_per_poll: max number of messages to send in a single batch to the broker. implicit minimum value of 1
Messages are received by ClearBlade as soon as possible from Google. ClearBlade will buffer them up internally and send in batches as defined above.