pub struct Session { /* private fields */ }Expand description
A WebTransport Session, able to accept/create streams and send/recv datagrams.
The session can be cloned to create multiple handles, which is which no method is &mut. The session will be closed with on drop.
Implementations§
Source§impl Session
impl Session
Sourcepub async fn accept_uni(&self) -> Result<RecvStream, Error>
pub async fn accept_uni(&self) -> Result<RecvStream, Error>
Block until the peer creates a new unidirectional stream.
Won’t return None unless the connection is closed.
Sourcepub async fn accept_bi(&self) -> Result<(SendStream, RecvStream), Error>
pub async fn accept_bi(&self) -> Result<(SendStream, RecvStream), Error>
Block until the peer creates a new bidirectional stream.
Sourcepub async fn open_bi(&self) -> Result<(SendStream, RecvStream), Error>
pub async fn open_bi(&self) -> Result<(SendStream, RecvStream), Error>
Open a new bidirectional stream, which may block when there are too many concurrent streams.
Sourcepub async fn open_uni(&self) -> Result<SendStream, Error>
pub async fn open_uni(&self) -> Result<SendStream, Error>
Open a new unidirectional stream, which may block when there are too many concurrent streams.
Sourcepub async fn send_datagram(&self, payload: Bytes) -> Result<(), Error>
pub async fn send_datagram(&self, payload: Bytes) -> Result<(), Error>
Send a datagram over the network.
QUIC datagrams may be dropped for any reason:
- Network congestion.
- Random packet loss.
- Payload is larger than
max_datagram_size() - Peer is not receiving datagrams.
- Peer has too many outstanding datagrams.
- ???
Sourcepub async fn max_datagram_size(&self) -> usize
pub async fn max_datagram_size(&self) -> usize
The maximum size of a datagram that can be sent.
Sourcepub async fn recv_datagram(&self) -> Result<Bytes, Error>
pub async fn recv_datagram(&self) -> Result<Bytes, Error>
Receive a datagram over the network.
Trait Implementations§
Source§impl From<Session> for Session
Convert a web_transport_quinn::Session into a web_transport::Session.
impl From<Session> for Session
Convert a web_transport_quinn::Session into a web_transport::Session.
impl Eq for Session
impl StructuralPartialEq for Session
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnsafeUnpin for Session
impl UnwindSafe for Session
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.