Connect to the TilliT Broker

Overview

MQTT works by using a subscribe/publish model. In this model, a broker acts as the one destination that all clients connect to. This article will describe how you will be able to connect to the TilliT Broker securely.

MQTT communicates on port 8883. Firewalls will generally block this port by default. Contact your IT services and confirm the port is open before attempting a connection.

MQTT Authentication

All TilliT MQTT connections are secured by a X.509 certificate authentication method. You can only recieve these certificates by first contacting TilliT Support. You will be issued a private key file, certificate file and root authority file that acts to authenticate and secure your connection. Place these files in a secure location that is accessible by your MQTT client software.

MQTT Broker Connection

Once you have the above authentication, use the broker endpoint iot.tillit.cloud to connect to the MQTT Broker on port 8883. Depending on your client. you may need to define the endpoint as ssl://iot.tillit.cloud:8883 (see Ignition). Once connected, you will be able to do the following two things to confirm.

1. Subscribe to the topic /tenant (replace tenant with yours)

2. Publish a message to the topic you subscribed to above. You should receive the message

Example (Javascript)

Copy the following contents into a file called mqtt.js and install the dependancies with npm install mqtt. Run with node mqtt.js.

const mqtt = require('mqtt')
const fs = require('fs')

//Replace the following with the correct paths and names
const privateKeyPath =  './tillitEdgeConfig/privKey.key'
const thingCertPath = './tillitEdgeConfig/thingCert.crt'
const tenant = 'bottling'


let client = mqtt.connect({
  host: 'iot.tillit.cloud',
  port: 8883,
  key: fs.readFileSync(privateKeyPath),
  cert: fs.readFileSync(thingCertPath),
  protocol: 'mqtt'
})


client.on('connect', function () {
    console.log("Connected...")
    client.subscribe(`/${tenant}`, function (err) {
        if (!err) {
            console.log("Subscribed...")
            client.publish(`/${tenant}`, JSON.stringify({message: 'Hello!!!'}))
        }else{
            console.log(err)
        }
    })
})


client.on('error', function(err) {
    console.log(err)
})


client.on('message', function (topic, message) {
    console.log("Message Received!")
    console.log(JSON.parse(message))
})

You should see the following output.

Connected...
Subscribed...
Message Received!
{ message: 'Hello!!!' }

Next: Subscribe to a TilliT Topic

Still need help? Contact Us Contact Us