-
-
Notifications
You must be signed in to change notification settings - Fork 75
WebTransport support #261
Copy link
Copy link
Open
Labels
A-engineioxideArea related to engineioxideArea related to engineioxideC-Feature-requestRequest for a featureRequest for a featureC-MusingMusing about a better worldMusing about a better worldP-LowLow priorityLow priorityS-BlockedStatus: marked as blocked ❌ on something else such as a PR or other implementation work.Status: marked as blocked ❌ on something else such as a PR or other implementation work.
Metadata
Metadata
Assignees
Labels
A-engineioxideArea related to engineioxideArea related to engineioxideC-Feature-requestRequest for a featureRequest for a featureC-MusingMusing about a better worldMusing about a better worldP-LowLow priorityLow priorityS-BlockedStatus: marked as blocked ❌ on something else such as a PR or other implementation work.Status: marked as blocked ❌ on something else such as a PR or other implementation work.
Projects
Status
Blocked
Is your feature request related to a problem? Please describe.
Head-of-line blocking and lack of multi-path make it meaningfully more difficult to build on top of WebSocket-based setups.
Describe the solution you'd like
WebTransport is supported in every modern browser environment except Safari iOS & Desktop. Those will probably gain support soon too. Socket.IO has added WebTransport support. It's been requested from rust-socketio and is supported in the JS client. Getting WebTransport support would solve the above issues amongst others.
Describe alternatives you've considered
We run into this all the time and maintain multiple connections to side-step some of the issues, but it's a very limited solution and multi-path is one of the major reasons why restoring state on reconnect (not yet implemented in socketoxide) is even important in our application.
Additional context
From looking around, I can't immediately spot WebTransport libraries that mention Tower and h3 seems to be working on it but delayed. Given the structure of this library, I totally understand if something external to the library has to happen before the library can add support. I imagine that it's worth having the issue open irrespective?