Zum Inhalt

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.Map für Handler und Namespaces
  • atomic.Value für Verbindungsstatus
  • RWMutex fü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