283 lines
7.8 KiB
Markdown
283 lines
7.8 KiB
Markdown
# MQTT System Dokumentation - Übersicht
|
|
|
|
## 🎯 Zweck dieser Dokumentation
|
|
|
|
Diese Dokumentation beschreibt die Migration des MQTT-Systems auf Version 2.0 mit Plugin-basierter Architektur und hilft Client-Entwicklern bei der Umstellung ihrer Anwendungen.
|
|
|
|
## 📚 Dokumentations-Struktur
|
|
|
|
### Für Client-Entwickler (Flutter/Dart)
|
|
|
|
#### 1. **MQTT_QUICK_REFERENCE.md** ⭐ START HERE
|
|
**Empfohlen für**: Schnelle Implementierung
|
|
**Inhalt**:
|
|
- ⚠️ Kritische Änderungen auf einen Blick
|
|
- 📋 Fertige Code-Snippets zum Copy-Paste
|
|
- 🔧 Verbindungsaufbau
|
|
- 📨 Nachricht senden/empfangen
|
|
- ✅ ACK-Handling
|
|
- 🐛 Debugging-Tipps
|
|
- ❌ Häufige Fehler und Lösungen
|
|
|
|
**Verwendung**: Als Referenz während der Implementierung offen halten.
|
|
|
|
#### 2. **MQTT_MIGRATION_GUIDE.md** 📖 DETAILLIERT
|
|
**Empfohlen für**: Vollständiges Verständnis
|
|
**Inhalt**:
|
|
- 📊 Übersicht aller Server-Änderungen
|
|
- 🔄 Detaillierte Client-Anpassungen
|
|
- 📦 Message-Envelope-Format
|
|
- ✅ Acknowledgment-System
|
|
- ☑️ Migration Checklist
|
|
- 🔙 Abwärtskompatibilität
|
|
- 💡 Vorteile des neuen Systems
|
|
- 🧪 Testing-Strategien
|
|
|
|
**Verwendung**: Vor der Implementierung komplett durchlesen.
|
|
|
|
### Für alle Entwickler
|
|
|
|
#### 3. **MIGRATION_SUMMARY.md** 📋 ÜBERSICHT
|
|
**Empfohlen für**: Schneller Überblick
|
|
**Inhalt**:
|
|
- 📚 Übersicht aller Dokumentationen
|
|
- 🔄 Zusammenfassung der Server-Änderungen
|
|
- ✅ Verifikation der Änderungen
|
|
- 📋 Client Migration Checklist
|
|
- 🔗 Dokumentations-Struktur
|
|
- 🎯 Nächste Schritte
|
|
|
|
**Verwendung**: Als Einstiegspunkt und Orientierung.
|
|
|
|
#### 4. **CHANGELOG_MQTT.md** 📝 HISTORIE
|
|
**Empfohlen für**: Audit und Troubleshooting
|
|
**Inhalt**:
|
|
- 💥 Breaking Changes
|
|
- ✨ Neue Features
|
|
- 🗑️ Entfernte Komponenten
|
|
- 🔧 Geänderte Komponenten
|
|
- 🏗️ Architektur-Änderungen
|
|
- 🧪 Testing-Ergebnisse
|
|
- 📊 Performance-Metriken
|
|
- 🔄 Rollback-Plan
|
|
|
|
**Verwendung**: Für detaillierte Änderungshistorie und Rollback-Planung.
|
|
|
|
#### 5. **MQTT_README.md** 📖 API-REFERENZ
|
|
**Empfohlen für**: API-Dokumentation
|
|
**Inhalt**:
|
|
- 🔌 Broker-Konfiguration (aktualisiert!)
|
|
- 📡 Topic-Struktur
|
|
- 📨 Message-Formate
|
|
- 🔐 Authentifizierung
|
|
- ⚙️ Connection-Parameter
|
|
|
|
**Verwendung**: Als API-Referenz für Topic-Struktur und Message-Formate.
|
|
|
|
### Für Backend-Entwickler
|
|
|
|
#### 6. **MESSAGING_LAYER.md** 🏗️ ARCHITEKTUR
|
|
**Empfohlen für**: Backend-Entwicklung
|
|
**Inhalt**:
|
|
- 🏗️ Architektur-Übersicht
|
|
- 🔌 Plugin-System
|
|
- 📦 Message-Delivery-Service
|
|
- 🔄 Nachrichtenfluss
|
|
- 🧩 Komponenten-Beschreibungen
|
|
- 🔧 Konfiguration
|
|
- 🐛 Fehlerbehandlung
|
|
|
|
**Verwendung**: Für Backend-Entwicklung und Architektur-Verständnis.
|
|
|
|
## 🚀 Quick Start für Client-Entwickler
|
|
|
|
### Schritt 1: Kritische Änderungen verstehen
|
|
```bash
|
|
# Lesen Sie zuerst die kritischen Änderungen
|
|
cat MQTT_QUICK_REFERENCE.md | head -50
|
|
```
|
|
|
|
**Wichtigste Änderungen**:
|
|
- ⚠️ **Port**: 1883 → **42099**
|
|
- ⚠️ **Auth**: Username: `app`, Password: `apppwd`
|
|
- ⚠️ **Timeout**: 30s → **60s**
|
|
|
|
### Schritt 2: Code-Beispiele kopieren
|
|
```bash
|
|
# Öffnen Sie die Quick Reference
|
|
open MQTT_QUICK_REFERENCE.md
|
|
```
|
|
|
|
Kopieren Sie die Code-Snippets für:
|
|
1. Verbindungsaufbau
|
|
2. MessageEnvelope-Klasse
|
|
3. Nachricht senden
|
|
4. Nachricht empfangen
|
|
5. ACK-Handling
|
|
|
|
### Schritt 3: Implementieren und Testen
|
|
```dart
|
|
// 1. Verbindung testen
|
|
await testConnection();
|
|
|
|
// 2. Nachricht senden testen
|
|
await sendMessage(client, clientId, 'test', {'hello': 'world'});
|
|
|
|
// 3. Nachricht empfangen testen
|
|
setupMessageListener(client, clientId);
|
|
```
|
|
|
|
### Schritt 4: Migration Checklist abarbeiten
|
|
```bash
|
|
# Öffnen Sie die Migration Checklist
|
|
open MIGRATION_SUMMARY.md
|
|
```
|
|
|
|
Arbeiten Sie die Checklist Punkt für Punkt ab.
|
|
|
|
## 📊 Änderungen auf einen Blick
|
|
|
|
### Server-Änderungen (✅ Abgeschlossen)
|
|
|
|
| Komponente | Alt | Neu | Status |
|
|
|------------|-----|-----|--------|
|
|
| **Port** | 1883 | 42099 | ✅ |
|
|
| **Auth** | Keine | app/apppwd | ✅ |
|
|
| **Timeout** | 30s | 60s | ✅ |
|
|
| **Konfiguration** | app.mqtt.* | app.messaging.plugin.mqtt.* | ✅ |
|
|
| **Fehlerbehandlung** | Basic | Detailliert | ✅ |
|
|
|
|
### Client-Änderungen (⚠️ Erforderlich)
|
|
|
|
| Aufgabe | Priorität | Dokumentation |
|
|
|---------|-----------|---------------|
|
|
| Port auf 42099 ändern | 🔴 KRITISCH | Quick Reference |
|
|
| Authentifizierung hinzufügen | 🔴 KRITISCH | Quick Reference |
|
|
| Timeout auf 60s erhöhen | 🟡 WICHTIG | Quick Reference |
|
|
| MessageEnvelope implementieren | 🟢 EMPFOHLEN | Migration Guide |
|
|
| ACK-Handling implementieren | 🟢 EMPFOHLEN | Migration Guide |
|
|
|
|
## 🎯 Empfohlener Workflow
|
|
|
|
### Für Client-Entwickler
|
|
|
|
```mermaid
|
|
graph LR
|
|
A[Start] --> B[Quick Reference lesen]
|
|
B --> C[Kritische Änderungen umsetzen]
|
|
C --> D[Code-Snippets kopieren]
|
|
D --> E[Implementieren]
|
|
E --> F[Testen]
|
|
F --> G{Tests OK?}
|
|
G -->|Nein| H[Migration Guide konsultieren]
|
|
H --> E
|
|
G -->|Ja| I[Deployment]
|
|
I --> J[Ende]
|
|
```
|
|
|
|
### Für Backend-Entwickler
|
|
|
|
```mermaid
|
|
graph LR
|
|
A[Start] --> B[Changelog lesen]
|
|
B --> C[Messaging Layer verstehen]
|
|
C --> D[Monitoring einrichten]
|
|
D --> E[Client-Support]
|
|
E --> F[Ende]
|
|
```
|
|
|
|
## 🔍 Troubleshooting-Guide
|
|
|
|
### Problem: Wo finde ich...?
|
|
|
|
| Frage | Antwort | Dokument |
|
|
|-------|---------|----------|
|
|
| Wie verbinde ich mich? | Code-Snippet | MQTT_QUICK_REFERENCE.md |
|
|
| Warum funktioniert die Verbindung nicht? | Debugging-Tipps | MQTT_QUICK_REFERENCE.md |
|
|
| Was ist ein MessageEnvelope? | Detaillierte Erklärung | MQTT_MIGRATION_GUIDE.md |
|
|
| Welche Änderungen gab es? | Vollständige Liste | CHANGELOG_MQTT.md |
|
|
| Wie ist die Architektur? | Architektur-Diagramm | MESSAGING_LAYER.md |
|
|
| Was sind die Topics? | Topic-Struktur | MQTT_README.md |
|
|
|
|
### Problem: Verbindung schlägt fehl
|
|
|
|
```bash
|
|
# 1. Quick Reference öffnen
|
|
open MQTT_QUICK_REFERENCE.md
|
|
|
|
# 2. Abschnitt "Debugging" suchen
|
|
# 3. "Verbindung testen" Code ausführen
|
|
# 4. "Häufige Fehler" konsultieren
|
|
```
|
|
|
|
### Problem: Nachrichten kommen nicht an
|
|
|
|
```bash
|
|
# 1. Migration Guide öffnen
|
|
open MQTT_MIGRATION_GUIDE.md
|
|
|
|
# 2. Abschnitt "Nachrichten empfangen" suchen
|
|
# 3. Code-Beispiel mit eigenem Code vergleichen
|
|
# 4. Topic-Struktur in MQTT_README.md prüfen
|
|
```
|
|
|
|
## 📞 Support
|
|
|
|
### Dokumentation nicht hilfreich?
|
|
|
|
1. **Logs prüfen**: Client- und Server-Logs analysieren
|
|
2. **Netzwerk testen**: Port 42099 Erreichbarkeit prüfen
|
|
3. **MQTT-Tool verwenden**: MQTT Explorer zum Debuggen nutzen
|
|
4. **Changelog konsultieren**: Alle Änderungen nochmal durchgehen
|
|
|
|
### Weitere Ressourcen
|
|
|
|
- **HiveMQ Dokumentation**: https://www.hivemq.com/docs/
|
|
- **MQTT v5 Spezifikation**: https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
|
|
- **Flutter MQTT Client**: https://pub.dev/packages/mqtt_client
|
|
|
|
## 📈 Status
|
|
|
|
| Komponente | Status | Datum |
|
|
|------------|--------|-------|
|
|
| Server-Migration | ✅ Abgeschlossen | 2025-10-22 |
|
|
| Dokumentation | ✅ Abgeschlossen | 2025-10-22 |
|
|
| Client-Migration | ⏳ Ausstehend | TBD |
|
|
| Testing | ⏳ Ausstehend | TBD |
|
|
| Deployment | ⏳ Ausstehend | TBD |
|
|
|
|
## 🎓 Lernpfad
|
|
|
|
### Anfänger (Nur Verbindung herstellen)
|
|
1. MQTT_QUICK_REFERENCE.md → Abschnitt "Verbindung herstellen"
|
|
2. Code kopieren und anpassen
|
|
3. Testen
|
|
|
|
### Fortgeschritten (Vollständige Integration)
|
|
1. MIGRATION_SUMMARY.md → Überblick verschaffen
|
|
2. MQTT_MIGRATION_GUIDE.md → Komplett durchlesen
|
|
3. MQTT_QUICK_REFERENCE.md → Als Referenz nutzen
|
|
4. Implementieren und testen
|
|
|
|
### Experte (Architektur verstehen)
|
|
1. CHANGELOG_MQTT.md → Alle Änderungen verstehen
|
|
2. MESSAGING_LAYER.md → Architektur studieren
|
|
3. MQTT_README.md → API-Details lernen
|
|
4. Eigene Erweiterungen entwickeln
|
|
|
|
## 📝 Feedback
|
|
|
|
Diese Dokumentation wurde erstellt, um die Client-Migration so einfach wie möglich zu machen. Bei Fragen, Unklarheiten oder Verbesserungsvorschlägen:
|
|
|
|
1. Dokumentation aktualisieren
|
|
2. Beispiele hinzufügen
|
|
3. Diagramme erweitern
|
|
|
|
---
|
|
|
|
**Version**: 2.0.0
|
|
**Stand**: 2025-10-22
|
|
**Autor**: System-Migration
|
|
**Status**: ✅ Vollständig
|
|
|