You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Drew Bednar 872213900a | 4 months ago | |
---|---|---|
.mosquitto | 4 months ago | |
clock | 4 months ago | |
cmd | 4 months ago | |
common | 4 months ago | |
scripts | 4 months ago | |
.gitignore | 4 months ago | |
DESIGN_CONCIDERATIONS.md | 4 months ago | |
LICENSE | 4 months ago | |
Makefile | 4 months ago | |
README.md | 4 months ago | |
docker-compose.yaml | 4 months ago | |
go.mod | 4 months ago | |
go.sum | 4 months ago | |
main.go | 4 months ago | |
main_test.go | 4 months ago |
README.md
Learn MQTT with Go
Learning MQTT with Golang by doing. This repo is a simple example of using a Golang application as a client (pub & sub) of an MQTT broker.
1883, Eclipse Mosquitto unsecured (opening the port on the internet is not recommended).
Development
For local development we use Mosquitto as our MQTT broker, with TLS enabled.
sudo apt install mosquitto-clients
First generate local development certs using:
make gen-local-tls-certs
This will create CA, server, and client certificates suitable for local development. Server and CA certs are created in ./.mosquitto/certs
. The client cert is create in the project root.
Start the local development environment with:
make start-dev
Stop the local development environment with:
make stop-dev
Usage
Instructions TBD
Design Considerations
Resources:
- Mosquitto Docs
- Mosquitto TLS Tutorial
- Golang MQTT Tutorial
- MQTT as a Service
- Using Wireshark for MQTT Analysis
- Caddy as reverse proxy
- Using Python paho MQTT client with TLS
- ESP32 Micropython MQTT with TLS: Note cert file format for uPy MQTT client needs to be in .der format which is a binary format.
- TLS refresher
- HA Mosquitto in K8s
- Lamport Timestamps Tutorial -Vector Clocks Lecture