Save 37% off PRO during our Black Friday Sale! »

MQTT Introduction:Not just for IoT - Chrinstoper Lozinski - PhytonLinks

6e3ea86995d93d35c0fadf2694bca773?s=47 GoDays
January 23, 2020

MQTT Introduction:Not just for IoT - Chrinstoper Lozinski - PhytonLinks

This is the basic introductory talk on MQTT. MQTT is a pub/sub protocol for interprocess communication. One process publishes information to a topic, other processes can subscribe to that topic. There is a tree of topics, so it is ideal for managing complexity. It also supports multiple Quality Of Service Levels: fire and forget, at least once, or exactly once. MQTT is an industry standard, which runs on every platform imagine-able.

By the end of this talk you should know enough to decide if MQTT is right for your projects.



January 23, 2020


  1. MQTT Pub/Sub Not just For IoT

  2. MQTT is a feather-weight ISO Compliant Pub/Sub Messaging protocol.

  3. Chat about this talk at

  4. MQTT Pub/Sub

  5. 3 Quality of Service Levels • QoS 0: Best Effort

    • QoS 1: At Least Once • QoS 2: Exactly Once
  6. 3 Quality of Service (QoS)

  7. MQTT Vs HTTP •

  8. Why Pub/Sub MQTT decouples Publishers and subscribers. • Space: Publishers

    and Subscribers do not need to know each other’s IP address and Port. • Time: Publishers and Subscribers do not have to be online at the same time • Synchronization: Pubishers and Subscribers can operate at their own pace.
  9. MQTT Retained Message MQTT is a hierarchical key-value store.

  10. Last Will And Testament When connecting specify what message to

    send to what topic on time out.
  11. Google Trends:MQTT

  12. Widely Used

  13. Home Automation

  14. Topic tree

  15. MQTT in Drilling

  16. Oil Pipelines

  17. One Sensor Configuration •

  18. Organizations need a Tree of Chat Servers

  19. Forest Chat Wiki • Slack and Discord are not trees

    nor wikis. • Wikimedia is not a tree and does not do Chat.
  20. Core MQTT Functions • client := mqtt.NewClient(opts) • client.Connect() •

    client.Publish(topic, qos, retain, msg) • client.Subscribe(topic, qos, callback)
  21. When Not to USE MQTT • Reliable Network, and No

    Pub/Sub. • You need a Task Queue: Celery.
  22. Start with CloudMQTT They make it free and trivial to

    get started.
  23. Is a docker container with GoLang’s Caddy Server, mosquitto,

    and mosquitto-go-auth. Next release supports Dynamic IP’s.
  24. MQTT Performance

  25. MQTT Scalability FaceBook Messenger

  26. MQTT is a Standard • MQTT 3.1 and 5.0 are

    standards of the Oasis Organization and now ISO.
  27. MQTT Brokers By Feature Starter OnLine CloudMQTT, Flespi, MyQTTHub,

    Azure, AWS,Google Cloud, IBM Watson, Alibaba, EMQ X Cloud Scalable, EMQX Distributed Scalable Akamai Persistent Various
  28. MQTT Brokers By Language C Mosquitto Erlang EMQTT, VerneMQ GoLang

    Emitter, Hrotti, Mystique, SurgeMQs Python HbMQTT Node.js Mosca, Addes Java HiveMQ,ActiveMQ,Moquette ESP_uMQTT esp_uMQTT_broker
  29. MQTT Client Libraries Python Javascript GoLang Erlang/Erlang C Swift Java

    .Net PHP Clojure Objective-C Lua Dart Rust Tcl Ruby Delphi
  30. GoLang Brokers Name #Contributors #Commits 15 503 HMQ 6

    153 go-mqtt 2 145
  31. MQTT is an effcient, reliable, scalable, industry- standard machine-to-machine Pub/Sub

    messaging protocol with 3 different quality-of-service (QoS) levels , topics, retained messages, and last wills.
  32. Links • Awesome MQTT Github: mosquitto-go-auth DockerHub: letsencrypt-mosquitto • Docker

    Hub: mqtt-chat-wiki • MQTT Explorer • Paho Libraries
  33. Contact Information Golang @MQTTClass on Twitter

  34. More Code Examples Search on: • “Cloudmqtt Golang” • “Golang

    MQTT Chat”