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.
learn_mqtt_go/README.md

48 lines
1.7 KiB
Markdown

# Learn MQTT with Go
4 months ago
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.
8088, Management Center unsecured (opening the port on the internet is not recommended).
1883, Eclipse Mosquitto unsecured (opening the port on the internet is not recommended).
## Development
For local development we use [Mosquitto](https://mosquitto.org/) as our MQTT broker, with TLS enabled.
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*
## Resources:
- [Mosquitto Docs](https://mosquitto.org/man/mosquitto-8.html)
- [Mosquitto TLS Tutorial](https://cedalo.com/blog/mqtt-tls-configuration-guide/)
- [Golang MQTT Tutorial]()
- [MQTT as a Service](https://cedalo.com/mqtt-broker-pro-mosquitto/)
- [Using Wireshare for MQTT Analysis](https://cedalo.com/blog/wireshark-mqtt-guide/)
- [Caddy as reverse proxy](https://github.com/caddyserver/caddy)
- [Using Python paho MQTT client with TLS](https://cedalo.com/blog/configuring-paho-mqtt-python-client-with-examples/)
- [ESP32 Micropython MQTT with TLS](https://dev.to/bassparanoya/esp32-micropython-mqtt-tls-28fd): Note cert file format for uPy MQTT client needs to be in .der format which is a binary format.
- [TLS refresher](http://www.steves-internet-guide.com/ssl-certificates-explained/)