MQViz Server adalah framework server MQTT modular berbasis Go, yang bertugas menerima, memproses, dan merespons data dari berbagai perangkat atau client melalui protokol MQTT — tanpa REST API.
🧩 Cocok digunakan untuk:
- Sistem monitoring sensor
- IoT command/control (relay, status, alarm)
- Realtime dashboard (via WebSocket)
- Replika fungsi REST API melalui MQTT
| Fitur | Keterangan |
|---|---|
| ✅ MQTT engine modular | Auto reconnect, TLS, wildcard subscribe |
| ✅ Topic router pattern | Seperti HTTP router, cocok untuk banyak role/device |
| ✅ JSON schema standar | Semua pesan dibungkus dengan timestamp, meta, data |
| ✅ DB log (SQLite/GORM) | Simpan data sensor/command otomatis |
| ✅ Web dashboard | Realtime view via WebSocket + static frontend |
| ✅ MQTT API (non-HTTP) | Flutter/Client cukup pakai MQTT untuk semua permintaan data |
mqviz-go-server/
├── cmd/server/ # Entrypoint main.go
├── config/ # YAML konfigurasi
├── internal/
│ ├── config/ # Loader YAML
│ ├── identity/ # Generate client_id otomatis
│ ├── mqvizmqtt/ # MQTT wrapper, builder, publisher
│ ├── router/ # Topic router ala HTTP-style
│ ├── handler/ # Modular handler sensor, command, request/response
│ ├── storage/ # GORM DB layer (SQLite default)
│ └── web/ # WebSocket + static file server
├── webui/ # (Opsional) Frontend dashboard via Vite- Clone repo ini
- Ubah
config/config.yamlsesuai identitas dan MQTT - Jalankan:
go run ./cmd/serverContoh client Flutter:
request topic: cobaindo/atgomon/client/mobile01/request/sensor
response topic: cobaindo/atgomon/client/mobile01/response/sensor
- Golang 1.21+
- GORM (ORM)
- Eclipse Paho MQTT
- WebSocket (gorilla)
- Vite + JS frontend
Pull request, issue, dan diskusi sangat diterima.
Silakan fork repo ini dan sesuaikan untuk proyek Anda.