Documentation
¶
Index ¶
Constants ¶
View Source
const ( // DefaultResponseTimeout is the default timeout for responses after a // request is successfully sent. DefaultResponseTimeout = time.Minute )
Variables ¶
View Source
var ErrCertRequired = fmt.Errorf("certificate required")
ErrCertRequired is the error returned when a ws connection fails because no cert was provided.
View Source
var ErrInvalidCert = fmt.Errorf("invalid certificate")
ErrInvalidCert is the error returned when attempting to use an invalid cert to set up a ws connection.
Functions ¶
This section is empty.
Types ¶
type ConnectionStatus ¶ added in v0.5.0
type ConnectionStatus uint32
ConnectionStatus represents the current status of the websocket connection.
const ( Disconnected ConnectionStatus = iota Connected InvalidCert )
func (ConnectionStatus) String ¶ added in v0.6.0
func (cs ConnectionStatus) String() string
String gives a human readable string for each connection status.
type WsCfg ¶
type WsCfg struct {
// URL is the websocket endpoint URL.
URL string
// The maximum time in seconds to wait for a ping from the server. This
// should be larger than the server's ping interval to allow for network
// latency.
PingWait time.Duration
// The server's certificate.
Cert []byte
// ReconnectSync runs the needed reconnection synchronization after
// a reconnect.
ReconnectSync func()
// ConnectEventFunc runs whenever connection status changes.
//
// NOTE: Disconnect event notifications may lag behind actual
// disconnections.
ConnectEventFunc func(ConnectionStatus)
// Logger is the logger for the WsConn.
Logger dex.Logger
// NetDialContext specifies an optional dialer context to use.
NetDialContext func(context.Context, string, string) (net.Conn, error)
// RawHandler overrides the msgjson parsing and forwards all messages to
// the provided function.
RawHandler func([]byte)
// DisableAutoReconnect disables automatic reconnection.
DisableAutoReconnect bool
ConnectHeaders http.Header
// EchoPingData will echo any data from pings as the pong data.
EchoPingData bool
}
WsCfg is the configuration struct for initializing a WsConn.
type WsConn ¶
type WsConn interface {
NextID() uint64
IsDown() bool
Send(msg *msgjson.Message) error
SendRaw(b []byte) error
Request(msg *msgjson.Message, respHandler func(*msgjson.Message)) error
RequestRaw(msgID uint64, rawMsg []byte, respHandler func(*msgjson.Message)) error
RequestWithTimeout(msg *msgjson.Message, respHandler func(*msgjson.Message), expireTime time.Duration, expire func()) error
Connect(ctx context.Context) (*sync.WaitGroup, error)
MessageSource() <-chan *msgjson.Message
UpdateURL(string)
}
WsConn is an interface for a websocket client.
Click to show internal directories.
Click to hide internal directories.