Documentation ¶
Overview ¶
Package websocket は、 WebSocket を使用したトランスポートを提供するパッケージです。
Index ¶
- Constants
- func Dial(c transport.DialConfig) (transport.Transport, error)
- func DialWithConfig(c transport.DialConfig, cc DialerConfig) (transport.Transport, error)
- func RegisterDialFunc(f DialFunc)
- type Config
- type Conn
- type DialConfig
- type DialFunc
- type Dialer
- type DialerConfig
- type MessageType
- type NegotiationParams
- type StaticTokenSource
- type Token
- type TokenSource
- type Transport
- func (t *Transport) AsUnreliable() (transport.UnreliableTransport, bool)
- func (t *Transport) Close() error
- func (t *Transport) Name() transport.Name
- func (t *Transport) NegotiationParams() transport.NegotiationParams
- func (t *Transport) Read() ([]byte, error)
- func (t *Transport) RxBytesCounterValue() uint64
- func (t *Transport) TxBytesCounterValue() uint64
- func (t *Transport) Write(bs []byte) error
Constants ¶
const (
DefaultQueueSize = 32
)
Config のデフォルト値は以下のように定義されています。
Variables ¶
This section is empty.
Functions ¶
func Dial ¶
func Dial(c transport.DialConfig) (transport.Transport, error)
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 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 Transport ¶
type Transport struct {
// contains filtered or unexported fields
}
Transportは、WebSocketトランスポートです。
func (*Transport) AsUnreliable ¶
func (t *Transport) AsUnreliable() (transport.UnreliableTransport, bool)
AsUnreliableは、トランスポートをUnreliableとして返却します。
WebSocketの場合は必ず `nil, false` を返却します。
func (*Transport) NegotiationParams ¶
func (t *Transport) NegotiationParams() transport.NegotiationParams
NegotiationParamsは、ネゴシエーションパラメータを返却します。
func (*Transport) RxBytesCounterValue ¶
RxBytesCounterValueは、読み込んだ総バイト数を返却します。
func (*Transport) TxBytesCounterValue ¶
TxBytesCounterValueは、書き込んだ総バイト数を返却します。
Source Files ¶
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接続を行うためのパッケージです(実験的)。 |