Comments (11)
receive_datagram
awaits for receiving the next datagram for the connection.
If the connection is closed during the await, then the async
function will returns but with an error Err
(instead of the datagram).
This is expected. And how Rust idiomatically handles errors (i.e., Result
).
Surely, I need to improve documentation. For now, I limited to the essential for publishing the first version of the library
from wtransport.
My frontend closes the 'webtransport', and it takes a long 30 seconds for the backend to detect that the 'connection' has been closed.
from wtransport.
The transport layer of this library currently sets a timeout of 10 seconds.
It means that by using the Connection
of this library, the connection will be detected as closed (Timed-Out
) in the worst case.
Worst-case means: your front-end interrupts the connection without a "graceful shutdown". For instance, by closing the UDP socket without sending a proper quic-CLOSE
frame.
If your front-end properly signals the end of connection, the connection will ends immediately as soon as the udp packet arrives on the endpoint.
from wtransport.
I understand what you mean. This is also due to the underlying limitations of 'WebTransport,' as it lacks a built-in heartbeat mechanism like WebSocket. Consequently, it requires an active close action to initiate the closure.
from wtransport.
I believe that future 'WebTransport' implementations will include a heartbeat mechanism.
from wtransport.
Yes. I am already working on transport configurations in order to:
- Allow settings the connection timeout.
- Allow configuring a transparent
PING
mechanism (this can be done by leveraging the underlying QUIC protocol), in order to keep alive the connection in case of no message exchanged for a long period.
from wtransport.
Unfortunately, this requires time.
I am working hard on this, but it is more a personal project for now and it takes time :)
from wtransport.
Don't worry, I believe that in the future, there will be a large number of developers collaborating with you, including myself. However, I am currently attending university, making it difficult for me to fully dedicate myself to this project.
from wtransport.
How is the progress?
from wtransport.
How is the progress?
from wtransport.
New release is out v0.1.2
It includes:
- Transport settings for
keep_alive
PING. - Transport settings for timeout.
- New
SessionRequest
to access HTTP request and decide whether accept or reject
I am closing this issue.
from wtransport.
Related Issues (20)
- Access to low-level quinn details in client HOT 3
- PrivateKeyNotFound when key already exists. HOT 6
- Please implement the Clone trait for the Identity HOT 1
- Access to low-level `quinn::Connection`
- WebTransport TLS Keying Material Exporter HOT 1
- Feature request: `SessionRequest::remote_address(&self) -> SocketAddr`
- Feature request: `SessionRequest::too_many_requests()`
- Bug report: `Connection::remote_address` returns IPv6 addresses despite using IPv4 HOT 5
- Firefox support HOT 4
- The `with_server_certificate_hashes` on the *client* should not be under a feature flag HOT 5
- Expose the server certificate hashes cert verifier for external use
- Is there a reason to have separate client and server endpoints? HOT 4
- Allow assigning fields at `ClientConfig` HOT 3
- wtransport for IOS & Android?
- `SendStream::stopped` requires move
- looping over RecvStream::read causes an infinite loop without the client sending anything. HOT 10
- Make receive_datagram return BytesMut HOT 4
- Version 0.1.13 does not build without default features HOT 1
- Wrong model for stream error codes
- Update the timeout for a specific client/SocketAddr at runtime HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wtransport.