package webtransport
Import Path
github.com/quic-go/webtransport-go (on go.dev)
Dependency Relation
imports 16 packages, and imported by one package
Involved Source Files
client.go
errors.go
protocol.go
server.go
session.go
session_manager.go
stream.go
streams_map.go
Package-Level Type Names (total 10)
DialAddr is the function used to dial the underlying QUIC connection.
If unset, quic.DialAddrEarly will be used.
QUICConfig is the QUIC config used when dialing the QUIC connection.
StreamReorderingTime is the time an incoming WebTransport stream that cannot be associated
with a session is buffered.
This can happen if the response to a CONNECT request (that creates a new session) is reordered,
and arrives after the first WebTransport stream(s) for that session.
Defaults to 5 seconds.
TLSClientConfig is the TLS client config used when dialing the QUIC connection.
It must set the h3 ALPN.
(*Dialer) Close() error
(*Dialer) Dial(ctx context.Context, urlStr string, reqHdr http.Header) (*http.Response, *Session, error)
*Dialer : github.com/prometheus/common/expfmt.Closer
*Dialer : io.Closer
( ReceiveStream) CancelRead(StreamErrorCode)
( ReceiveStream) Read(p []byte) (n int, err error)
( ReceiveStream) SetReadDeadline(time.Time) error
( ReceiveStream) StreamID() quic.StreamID
Stream (interface)
ReceiveStream : github.com/pion/datachannel.ReadDeadliner
ReceiveStream : io.Reader
func (*Session).AcceptUniStream(ctx context.Context) (ReceiveStream, error)
( SendStream) CancelWrite(StreamErrorCode)
( SendStream) Close() error
( SendStream) SetWriteDeadline(time.Time) error
( SendStream) StreamID() quic.StreamID
( SendStream) Write([]byte) (int, error)
Stream (interface)
SendStream : github.com/miekg/dns.Writer
SendStream : github.com/pion/datachannel.WriteDeadliner
SendStream : github.com/prometheus/common/expfmt.Closer
SendStream : internal/bisect.Writer
SendStream : io.Closer
SendStream : io.WriteCloser
SendStream : io.Writer
func (*Session).OpenUniStream() (SendStream, error)
func (*Session).OpenUniStreamSync(ctx context.Context) (str SendStream, err error)
CheckOrigin is used to validate the request origin, thereby preventing cross-site request forgery.
CheckOrigin returns true if the request Origin header is acceptable.
If unset, a safe default is used: If the Origin header is set, it is checked that it
matches the request's Host header.
H3 http3.Server
ReorderingTimeout is the maximum time an incoming WebTransport stream that cannot be associated
with a session is buffered. It is also the maximum time a WebTransport connection request is
blocked waiting for the client's SETTINGS are received.
This can happen if the CONNECT request (that creates a new session) is reordered, and arrives
after the first WebTransport stream(s) for that session.
Defaults to 5 seconds.
(*Server) Close() error
(*Server) ListenAndServe() error
(*Server) ListenAndServeTLS(certFile, keyFile string) error
(*Server) Serve(conn net.PacketConn) error
ServeQUICConn serves a single QUIC connection.
(*Server) Upgrade(w http.ResponseWriter, r *http.Request) (*Session, error)
*Server : github.com/prometheus/common/expfmt.Closer
*Server : io.Closer
(*Session) AcceptStream(ctx context.Context) (Stream, error)
(*Session) AcceptUniStream(ctx context.Context) (ReceiveStream, error)
(*Session) CloseWithError(code SessionErrorCode, msg string) error
(*Session) ConnectionState() quic.ConnectionState
Context returns a context that is closed when the session is closed.
(*Session) LocalAddr() net.Addr
(*Session) OpenStream() (Stream, error)
(*Session) OpenStreamSync(ctx context.Context) (Stream, error)
(*Session) OpenUniStream() (SendStream, error)
(*Session) OpenUniStreamSync(ctx context.Context) (str SendStream, err error)
(*Session) ReceiveDatagram(ctx context.Context) ([]byte, error)
(*Session) RemoteAddr() net.Addr
(*Session) SendDatagram(b []byte) error
func (*Dialer).Dial(ctx context.Context, urlStr string, reqHdr http.Header) (*http.Response, *Session, error)
func (*Server).Upgrade(w http.ResponseWriter, r *http.Request) (*Session, error)
SessionError is a WebTransport connection error.
ErrorCode SessionErrorCode
Message string
Remote bool
(*SessionError) Error() string
*SessionError : error
SessionErrorCode is an error code for session termination.
func (*Session).CloseWithError(code SessionErrorCode, msg string) error
( Stream) CancelRead(StreamErrorCode)
( Stream) CancelWrite(StreamErrorCode)
( Stream) Close() error
( Stream) Read(p []byte) (n int, err error)
( Stream) SetDeadline(time.Time) error
( Stream) SetReadDeadline(time.Time) error
( Stream) SetWriteDeadline(time.Time) error
( Stream) StreamID() quic.StreamID
( Stream) Write([]byte) (int, error)
Stream : ReceiveStream
Stream : SendStream
Stream : github.com/miekg/dns.Writer
Stream : github.com/pion/datachannel.ReadDeadliner
Stream : github.com/pion/datachannel.WriteDeadliner
Stream : github.com/pion/stun.Connection
Stream : github.com/pion/stun/v3.Connection
Stream : github.com/prometheus/common/expfmt.Closer
Stream : internal/bisect.Writer
Stream : io.Closer
Stream : io.ReadCloser
Stream : io.Reader
Stream : io.ReadWriteCloser
Stream : io.ReadWriter
Stream : io.WriteCloser
Stream : io.Writer
func (*Session).AcceptStream(ctx context.Context) (Stream, error)
func (*Session).OpenStream() (Stream, error)
func (*Session).OpenStreamSync(ctx context.Context) (Stream, error)
StreamError is the error that is returned from stream operations (Read, Write) when the stream is canceled.
ErrorCode StreamErrorCode
Remote bool
(*StreamError) Error() string
(*StreamError) Is(target error) bool
*StreamError : error
StreamErrorCode is an error code used for stream termination.
func ReceiveStream.CancelRead(StreamErrorCode)
func SendStream.CancelWrite(StreamErrorCode)
func Stream.CancelRead(StreamErrorCode)
func Stream.CancelWrite(StreamErrorCode)
Package-Level Constants (only one)
WebTransportBufferedStreamRejectedErrorCode is the error code of the
H3_WEBTRANSPORT_BUFFERED_STREAM_REJECTED error.
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |