Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- type ClientOption
- func WithCloseGracePeriod(d time.Duration) ClientOption
- func WithCompression(enabled bool) ClientOption
- func WithDialer(...) ClientOption
- func WithHandshakeTimeout(d time.Duration) ClientOption
- func WithHeaders(h map[string][]string) ClientOption
- func WithInitialReconnect(d time.Duration) ClientOption
- func WithLogger(l *golog.Logger) ClientOption
- func WithMaxConsecutiveFailures(n int) ClientOption
- func WithMaxReconnect(d time.Duration) ClientOption
- func WithMessageQueueSize(size int) ClientOption
- func WithMetrics(m *Metrics) ClientOption
- func WithOnClose(fn func()) ClientOption
- func WithOnError(fn func(error)) ClientOption
- func WithOnMessage(fn func([]byte, MessageType)) ClientOption
- func WithOnOpen(fn func()) ClientOption
- func WithPingInterval(d time.Duration) ClientOption
- func WithPinger(p Pinger) ClientOption
- func WithPongTimeout(d time.Duration) ClientOption
- func WithReadTimeout(d time.Duration) ClientOption
- func WithReconnectFactor(f float64) ClientOption
- func WithReconnectJitter(j float64) ClientOption
- func WithSubprotocols(subs ...string) ClientOption
- func WithWriteTimeout(d time.Duration) ClientOption
- type MessageType
- type Metrics
- type Pinger
- type StatusCode
Constants ¶
const ( DefaultInitialReconnectInterval = 1 * time.Second DefaultMaxReconnectInterval = 30 * time.Second DefaultReconnectFactor = 2.0 DefaultReconnectJitter = 0.5 DefaultPingInterval = 30 * time.Second DefaultPongTimeout = 10 * time.Second DefaultWriteTimeout = 10 * time.Second DefaultReadTimeout = 10 * time.Second DefaultHandshakeTimeout = 5 * time.Second DefaultMessageQueueSize = 100 DefaultCloseGracePeriod = 5 * time.Second DefaultMaxConsecutiveFailures = 10 )
Variables ¶
var ErrClosed = errors.New("client closed")
ErrClosed indicates the client is closed.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a robust WebSocket client with auto-reconnect and advanced features.
func NewClient ¶
func NewClient(url string, options ...ClientOption) *Client
NewClient creates a new robust WebSocket client. The resulting client is safe for concurrent use; call Connect to initiate the connection lifecycle.
func (*Client) Close ¶
func (c *Client) Close()
Close gracefully shuts down the client, waiting indefinitely for all goroutines to exit.
func (*Client) CloseWithTimeout ¶ added in v1.0.1
CloseWithTimeout shuts down the client while honouring the provided context. If the context expires, the method returns immediately.
func (*Client) Connect ¶
Connect performs the initial handshake. It returns once the first attempt either succeeds or fails, while the reconnect manager continues running in the background.
type ClientOption ¶
type ClientOption func(*clientOptions)
ClientOption is a functional option for configuring the Client.
func WithCloseGracePeriod ¶
func WithCloseGracePeriod(d time.Duration) ClientOption
func WithCompression ¶
func WithCompression(enabled bool) ClientOption
func WithDialer ¶ added in v1.0.1
func WithHandshakeTimeout ¶
func WithHandshakeTimeout(d time.Duration) ClientOption
func WithHeaders ¶
func WithHeaders(h map[string][]string) ClientOption
func WithInitialReconnect ¶
func WithInitialReconnect(d time.Duration) ClientOption
func WithLogger ¶
func WithLogger(l *golog.Logger) ClientOption
func WithMaxConsecutiveFailures ¶ added in v1.0.1
func WithMaxConsecutiveFailures(n int) ClientOption
func WithMaxReconnect ¶
func WithMaxReconnect(d time.Duration) ClientOption
func WithMessageQueueSize ¶
func WithMessageQueueSize(size int) ClientOption
func WithMetrics ¶ added in v1.0.1
func WithMetrics(m *Metrics) ClientOption
func WithOnClose ¶
func WithOnClose(fn func()) ClientOption
func WithOnError ¶
func WithOnError(fn func(error)) ClientOption
func WithOnMessage ¶
func WithOnMessage(fn func([]byte, MessageType)) ClientOption
func WithOnOpen ¶
func WithOnOpen(fn func()) ClientOption
func WithPingInterval ¶
func WithPingInterval(d time.Duration) ClientOption
func WithPinger ¶ added in v1.0.1
func WithPinger(p Pinger) ClientOption
func WithPongTimeout ¶
func WithPongTimeout(d time.Duration) ClientOption
func WithReadTimeout ¶
func WithReadTimeout(d time.Duration) ClientOption
func WithReconnectFactor ¶
func WithReconnectFactor(f float64) ClientOption
func WithReconnectJitter ¶
func WithReconnectJitter(j float64) ClientOption
func WithSubprotocols ¶
func WithSubprotocols(subs ...string) ClientOption
func WithWriteTimeout ¶
func WithWriteTimeout(d time.Duration) ClientOption
type MessageType ¶
type MessageType = websocket.MessageType
MessageType aliases websocket.MessageType for convenience.
type Metrics ¶ added in v1.0.1
type Metrics struct {
OnReconnect func(wait time.Duration)
OnQueueDrop func(msg queuedMessage)
OnPingFailure func(err error)
OnPermanentError func(err error)
}
Metrics aggregates optional callbacks that can be used for instrumentation.
type StatusCode ¶
type StatusCode = websocket.StatusCode
StatusCode aliases websocket.StatusCode for convenience.