Add WebTransport integration to Socket.IO Java client #791
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add WebTransport Support to Socket.IO Java Client
This PR adds comprehensive WebTransport support to the Socket.IO Java client ecosystem, enabling modern HTTP/3-based real-time communication with automatic fallback to traditional transports.
🚀 Overview
WebTransport is a modern transport protocol based on HTTP/3 and QUIC that provides improved performance, reduced latency, and better handling of network conditions compared to traditional WebSocket connections.
This implementation provides production-ready WebTransport support with seamless fallback behavior.
📦 Changes Summary
Engine.IO Client (
engine.io-client-java
)jetty-quiche-native
dependency for native QUIC protocol supporttryNextTransport()
methodSocket.EVENT_ERROR
emission when all transports failSocket.IO Client (
socket.io-client-java
)🔧 Technical Implementation
Dependencies Added
jetty-quiche-native
Key Features
📋 Usage
🧪 Testing
🔄 Migration Guide
Before (Complex, Inconsistent)
After (Simple, Consistent)
✅ Compatibility
Socket.EVENT_ERROR
emission🎯 Benefits
🏗️ Architecture Improvements
tryNextTransport()
Socket.EVENT_ERROR
emissionreadyState
handling throughout transport lifecycle📌 Notes
✅ This implementation provides a robust, production-ready WebTransport solution that gracefully falls back to traditional transports when WebTransport is unavailable, ensuring maximum compatibility and reliability for Socket.IO Java applications.