websocket

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: 20 Imported by: 0

Documentation

Overview

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

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)

DialWithConfigは、トランスポート接続を開始します。

func RegisterDialFunc

func RegisterDialFunc(f DialFunc)

RegisterDialFuncは、DialFuncを登録します。

DialFuncを登録すると、WebSocketトランスポートはライブラリ内で登録されたDialFuncを使用します。

Types

type Config

type Config struct {

	// Conn は、WebSocketのコネクションです。
	// このフィールドを nil にすることはできません。
	Conn Conn

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

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

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

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

type Conn

type Conn interface {
	// Closeは、コネクションをクローズします。
	Close() error

	// Pingは、Pingを送信します。
	Ping(context.Context) error

	// Readerは、WebSocketメッセージのReaderを返却します。
	Reader(context.Context) (MessageType, io.Reader, error)

	// Writerは、WebSocketメッセージのWriterを返却します。
	Writer(context.Context, MessageType) (io.WriteCloser, error)
}

Connは、WebSocketのコネクションインターフェースです。

type DialConfig added in v0.12.0

type DialConfig struct {
	// URLは、接続先URLです。
	URL string
	// Tokenは、接続時に認証ヘッダーへ設定するトークンです。
	Token *Token
	// TLSConfigは、TLS設定です。
	TLSConfig *tls.Config

	// EnableMultipathTCPはMultipath TCPを有効化します。
	EnableMultipathTCP bool
}

DialConfigは、Dialerの設定です。

type DialFunc

type DialFunc func(c DialConfig) (Conn, error)

DialFunc はConnを返却する関数です。 Tokenはオプショナルです。nilの可能性があります。

実装したDialFuncは、RegisterDialFuncを使用して登録します。

type Dialer

type Dialer struct {
	DialerConfig
}

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

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

	// EnableTLSは TLSアクセスするかどうかを設定します。
	EnableTLS bool

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

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

	// EnableMultipathTCPは、MultipathTCPを有効にします。
	EnableMultipathTCP bool
}

DialerConfigはDialerの設定です。

type MessageType

type MessageType int

MessageTypeは、WebSocketのメッセージタイプを表します。

const (
	MessageText   MessageType = iota + 1 // テキストメッセージ
	MessageBinary                        // バイナリメッセージ
)

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は、WebSocketトランスポートです。

func New

func New(config Config) *Transport

Newは、WebSocketトランスポートを返却します。

func (*Transport) AsUnreliable

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

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

WebSocketの場合は必ず `nil, false` を返却します。

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) RxBytesCounterValue

func (t *Transport) RxBytesCounterValue() uint64

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

func (*Transport) TxBytesCounterValue

func (t *Transport) TxBytesCounterValue() uint64

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

func (*Transport) Write

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

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

Directories

Path Synopsis
Package gorillaは、Gorilla WebSocket(https://github.com/gorilla/websocket) を使ってWebSocket接続を行うためのパッケージです。
Package gorillaは、Gorilla WebSocket(https://github.com/gorilla/websocket) を使ってWebSocket接続を行うためのパッケージです。
Package nhooyrは、 nhooyr/websocket (https://github.com/nhooyr/websocket) を使ってWebSocket接続を行うためのパッケージです(実験的)。
Package nhooyrは、 nhooyr/websocket (https://github.com/nhooyr/websocket) を使ってWebSocket接続を行うためのパッケージです(実験的)。

Jump to

Keyboard shortcuts

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