Changelog¶
Alle bemerkenswerten Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf Keep a Changelog, und dieses Projekt folgt Semantic Versioning.
1.0.0 - 2025-10-12¶
✨ Hinzugefügt¶
- Vollständige Socket.IO v4 Implementierung
- Vollständige Unterstützung des Socket.IO v4 Protokolls
- Engine.IO v4 mit HTTP Long-Polling und WebSocket-Transport
-
Handshake und Protokollverhandlung
-
Namespaces
- Verbindungsmultiplexing mit Namespaces
- Unterstützung für Standard-Namespace (
/) und benutzerdefinierte Namespaces -
Nach Namespace isolierte Ereignisse
-
Event System
- Senden und Empfangen von benutzerdefinierten Ereignissen
- Event-Handler mit variablen Argumenten
-
Unterstützung für Lebenszyklusereignisse (connect, disconnect, error)
-
Acknowledgments
- Request-Response-Muster mit
EmitWithAck() - Konfigurierbares Timeout für Acknowledgments
-
Bidirektionale Unterstützung (Client→Server, Server→Client)
-
Binary Events
- Effiziente Übertragung binärer Daten
EmitBinary()zum Senden von Dateien, Bildern, etc.-
Keine Base64-Kodierung (spart ~33% Bandbreite)
-
Automatische Wiederverbindung
- Automatische Wiederverbindung mit exponentiellem Backoff
- Flexible Konfiguration (
ReconnectAttempts,ReconnectDelay,ReconnectDelayMax) -
Wiederverbindungsereignisse (attempt, success, error, failed)
-
Authentifizierung
- Authentifizierungsunterstützung beim initialen Handshake
- Benutzerdefinierte HTTP-Header
-
Kompatibel mit JWT und anderen Tokens
-
Thread-Safety
- Verwendung von
sync.Mapfür Handler und Namespaces atomic.Valuefür VerbindungsstatusRWMutexfür sicheren gleichzeitigen Zugriff-
Null Data Races (validiert mit Go Race Detector)
-
Flexible Konfiguration
Options-Struct mit allen Konfigurationen- Vernünftige Standardwerte
-
Konfigurierbare Timeouts
-
Testing
- Vollständige Unit-Test-Suite
- Benutzerdefinierter Test-Runner (
cmd/testrunner/) -
Unterstützung für Tests: unit, integration, compliance, stress
-
Dokumentation
- Vollständige Dokumentation auf Spanisch
- Schnellstart-Anleitungen
- Vollständige API-Referenz
- Fortgeschrittene Verwendungsmuster
-
Funktionale Beispiele
-
Beispiele
- Basic: Einfache Verbindung
- Authentication: JWT und Authentifizierung
- Binary: Dateiübertragung
- Chat: Echtzeit-Chat-Anwendung
- Namespaces: Multiple Namespaces
- Acknowledgments: Request-Response
- Reconnection: Wiederverbindungsbehandlung
- Rooms: Räume und Broadcasting
🔒 Sicherheit¶
- URL-Validierung (Injektionsprävention)
- Sichere WebSocket-Verbindungsbehandlung
- Timeout zur Verhinderung hängender Verbindungen
📊 Leistung¶
- 10.000+ gleichzeitige Ereignisse pro Sekunde
- Speichereffizienz mit Buffer-Pool
- Optimiertes Parsing von Engine.IO-Paketen
- Exponentieller Backoff für intelligente Wiederverbindung
🐛 Behoben¶
- N/A (erste stabile Version)
📝 Dokumentation¶
- Vollständiges README mit Beispielen
- Technische Dokumentation im Ordner
docs/ - Ausführbare Beispiele im Ordner
examples/ - GoDoc-Kommentare im gesamten öffentlichen Code
🧪 Testing¶
- Code-Abdeckung > 80%
- Tests mit Go Race Detector
- CI/CD mit GitHub Actions
- Tests in Go 1.20, 1.21, 1.22
Unreleased¶
🚧 In Entwicklung¶
- Unterstützung für mehrere simultane Transports
- Anpassbarer WebSocket-Ping/Pong
- Integrierte Metriken und Observability
- Unterstützung für Nachrichtenkompression
Konventionen¶
Änderungstypen¶
- ✨ Hinzugefügt - Neue Funktionalitäten
- 🔄 Geändert - Änderungen an bestehenden Funktionalitäten
- ⚠️ Veraltet - Funktionalitäten, die entfernt werden
- 🗑️ Entfernt - Eliminierte Funktionalitäten
- 🐛 Behoben - Fehlerbehebungen
- 🔒 Sicherheit - Sicherheitskorrekturen