Changelog¶
Todos los cambios notables de este proyecto serán documentados en este archivo.
El formato se basa en Keep a Changelog, y este proyecto adhiere a Semantic Versioning.
1.0.0 - 2025-10-12¶
✨ Agregado¶
- Implementación completa de Socket.IO v4
- Soporte completo del protocolo Socket.IO v4
- Engine.IO v4 con HTTP long-polling y WebSocket transport
-
Handshake y negociación de protocolo
-
Namespaces
- Multiplexación de conexiones con namespaces
- Soporte para namespace por defecto (
/) y personalizados -
Eventos aislados por namespace
-
Event System
- Emisión y recepción de eventos personalizados
- Event handlers con argumentos variables
-
Soporte para eventos del ciclo de vida (connect, disconnect, error)
-
Acknowledgments
- Request-response pattern con
EmitWithAck() - Timeout configurable para acknowledgments
-
Soporte bidireccional (cliente→servidor, servidor→cliente)
-
Binary Events
- Transmisión eficiente de datos binarios
EmitBinary()para envío de archivos, imágenes, etc.-
Sin codificación Base64 (ahorro de ~33% ancho de banda)
-
Reconnection Automática
- Reconexión automática con backoff exponencial
- Configuración flexible (
ReconnectAttempts,ReconnectDelay,ReconnectDelayMax) -
Eventos de reconexión (attempt, success, error, failed)
-
Autenticación
- Soporte de autenticación en handshake inicial
- Headers HTTP personalizados
-
Compatible con JWT y otros tokens
-
Thread-Safety
- Uso de
sync.Mappara handlers y namespaces atomic.Valuepara estado de conexiónRWMutexpara acceso concurrente seguro-
Zero data races (validado con Go Race Detector)
-
Configuración Flexible
- Struct
Optionscon todas las configuraciones - Valores por defecto razonables
-
Timeouts configurables
-
Testing
- Suite completa de tests unitarios
- Test runner personalizado (
cmd/testrunner/) -
Soporte para tests: unit, integration, compliance, stress
-
Documentación
- Documentación completa en español
- Guías de inicio rápido
- API Reference completa
- Patrones de uso avanzado
-
Ejemplos funcionales
-
Ejemplos
- Basic: Conexión simple
- Authentication: JWT y autenticación
- Binary: Transferencia de archivos
- Chat: Aplicación de chat en tiempo real
- Namespaces: Múltiples namespaces
- Acknowledgments: Request-response
- Reconnection: Manejo de reconexión
- Rooms: Salas y broadcasting
🔒 Seguridad¶
- Validación de URLs (prevención de inyección)
- Manejo seguro de conexiones WebSocket
- Timeout para prevenir conexiones colgadas
📊 Rendimiento¶
- 10,000+ eventos concurrentes por segundo
- Eficiencia de memoria con pool de buffers
- Parsing optimizado de paquetes Engine.IO
- Backoff exponencial para reconexión inteligente
🐛 Corregido¶
- N/A (primera versión estable)
📝 Documentación¶
- README completo con ejemplos
- Documentación técnica en carpeta
docs/ - Ejemplos ejecutables en carpeta
examples/ - Comentarios GoDoc en todo el código público
🧪 Testing¶
- Cobertura de código > 80%
- Tests con Go Race Detector
- CI/CD con GitHub Actions
- Tests en Go 1.20, 1.21, 1.22
Unreleased¶
🚧 En desarrollo¶
- Soporte para múltiples transports simultáneos
- Websocket ping/pong customizable
- Métricas y observabilidad integrada
- Soporte para compresión de mensajes
Convenciones¶
Tipos de Cambios¶
- ✨ Agregado - Nuevas funcionalidades
- 🔄 Cambiado - Cambios en funcionalidades existentes
- ⚠️ Deprecado - Funcionalidades que serán removidas
- 🗑️ Removido - Funcionalidades eliminadas
- 🐛 Corregido - Bug fixes
- 🔒 Seguridad - Correcciones de seguridad