webtransport

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package webtransport は、 WebTransport を使用したトランスポートを提供するパッケージです。

Index

Constants

View Source
const (
	DefaultQueueSize = 32
)

Config のデフォルト値は以下のように定義されています。

Variables

This section is empty.

Functions

func Dial

Dialは、デフォルト設定を使ってトランスポート接続します。

func DialWithConfig

func DialWithConfig(c transport.DialConfig, cc DialerConfig) (transport.Transport, error)

Dialは、トランスポート接続します。

Types

type Config

type Config struct {
	// Connection は、QUICのコネクションです。
	// このフィールドを nil にすることはできません。
	Connection *webtransgo.Session

	// QueueSize は、トランスポートとメッセージをやり取りする際のメッセージキューの長さです。
	// 0 に設定された場合は、 DefaultQueueSize の値が使用されます。
	QueueSize int

	// CompressConfig は、圧縮に関する設定です。
	CompressConfig compress.Config

	// ReadBufferExpiry は DATAGRAMメッセージのバッファ有効期限です。
	// 0 に設定された場合は、DefaultReadBufferExpiryが使用されます。
	ReadBufferExpiry time.Duration

	// NegotiationParams は、このトランスポートで事前ネゴシエーションされたパラメーターです。
	NegotiationParams NegotiationParams
}

Config は、トランスポートに関する設定です。

type Dialer

type Dialer struct {
	DialerConfig
}

Dialerは、WebTransportのトランスポートを接続します。

func NewDefaultDialer

func NewDefaultDialer() *Dialer

NewDefaultDialerは、デフォルト設定のDialerを返却します。

func NewDialer

func NewDialer(c DialerConfig) *Dialer

NewDialerは、Dialerを返却します。

func (*Dialer) Dial

Dialは、トランスポートを接続します。

type DialerConfig

type DialerConfig struct {
	// QueueSize は、トランスポートとメッセージをやり取りする際のメッセージキューの長さです。
	// 0 に設定された場合は、 DefaultQueueSize の値が使用されます。
	QueueSize int

	// Pathはパスを指定します
	Path string

	// TLSConfigは TLSの設定です。
	TLSConfig *tls.Config

	// TokenSourceは、接続時に認証ヘッダーへ設定するトークンを取得します。
	// Dialerは取得されたトークンを認証ヘッダーとして利用します。
	TokenSource TokenSource
}

DialerConfigは、Dialerの設定です。

type NegotiationParams

type NegotiationParams struct {
	transport.NegotiationParams
}

NegotiationParamsは、トランスポートネゴシエーションのパラメータです。

func (*NegotiationParams) MarshalURLValues

func (p *NegotiationParams) MarshalURLValues() (url.Values, error)

MarshalURLValuesは、ネゴシエーションパラメータをurl.Valuesにエンコードします。

func (*NegotiationParams) UnmarshalURLValues

func (p *NegotiationParams) UnmarshalURLValues(values url.Values) error

UnmarshalURLValuesは、ネゴシエーションパラメータをurl.Valuesからデコードします。

type StaticTokenSource

type StaticTokenSource struct {
	StaticToken *Token
}

StaticTokenSourceは、静的に設定されたトークンを常に返却するTokenSource実装です。

func (*StaticTokenSource) Token

func (ts *StaticTokenSource) Token() (*Token, error)

TokenはTokenを返却します。

type Token

type Token struct {
	// Tokenはトークン文字列です。
	Token string

	// Headerはヘッダ名を指定します。デフォルトは `Authorization` です。
	Header string
}

Tokenはトークンを表します。

type TokenSource

type TokenSource interface {
	Token() (*Token, error)
}

TokenSourceは、認証トークンの取得用インターフェースです。

ライブラリはこのインターフェースをWebSocket認証時に呼び出します。

type Transport

type Transport struct {
	// contains filtered or unexported fields
}

Transportは、WebTransportのトランスポートです。

func New

func New(config Config) (*Transport, error)

New は、 WebTransport 向けのトランスポートを生成します。

func (*Transport) AsUnreliable

func (t *Transport) AsUnreliable() (transport.UnreliableTransport, bool)

AsUnreliableは、トランスポートをUnreliableとして返却します。

トランスポートにWebTransportを選択した場合、信頼性のないトランスポートとしてはQUICDatagramが使用されます。

func (*Transport) Close

func (t *Transport) Close() error

Closeはトランスポートを閉じます。

func (*Transport) Name

func (t *Transport) Name() transport.Name

Nameはトランスポート名を返却します。

func (*Transport) NegotiationParams

func (t *Transport) NegotiationParams() transport.NegotiationParams

NegotiationParamsは、ネゴシエーションパラメータを返却します。

func (*Transport) Read

func (t *Transport) Read() ([]byte, error)

Readは、1メッセージ分のデータを読み込みます。

func (*Transport) ReadUnreliable

func (t *Transport) ReadUnreliable() ([]byte, error)

ReadUnreliableは、信頼性のないトランスポートから1メッセージ分のデータを読み込みます。

func (*Transport) RxBytesCounterValue

func (t *Transport) RxBytesCounterValue() uint64

RxBytesCounterValueは、読み込んだ総バイト数を返却します。

func (*Transport) TxBytesCounterValue

func (t *Transport) TxBytesCounterValue() uint64

TxBytesCounterValueは、書き込んだ総バイト数を返却します。

func (*Transport) Write

func (t *Transport) Write(m []byte) error

Writeは、1メッセージ分のデータを書き込みます。

func (*Transport) WriteUnreliable

func (t *Transport) WriteUnreliable(m []byte) error

WriteUnreliableは、信頼性のないトランスポートへ1メッセージ分のデータを書き込みます。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL