Documentation ¶
Index ¶
- func MaxReconnectAttempts(max int) func(*WSClient)
- func OnReconnect(cb func()) func(*WSClient)
- func PingPeriod(pingPeriod time.Duration) func(*WSClient)
- func ReadWait(readWait time.Duration) func(*WSClient)
- func WriteWait(writeWait time.Duration) func(*WSClient)
- type HTTPClient
- type JSONRPCClient
- type URIClient
- type WSClient
- func (c *WSClient) Call(ctx context.Context, method string, params map[string]interface{}) error
- func (c *WSClient) CallWithArrayParams(ctx context.Context, method string, params []interface{}) error
- func (c *WSClient) IsActive() bool
- func (c *WSClient) IsReconnecting() bool
- func (c *WSClient) OnStart() error
- func (c *WSClient) OnStop()
- func (c *WSClient) Send(ctx context.Context, request types.RPCRequest) error
- func (c *WSClient) Stop() bool
- func (c *WSClient) String() string
- func (c *WSClient) Subscribe(ctx context.Context, eventType string) error
- func (c *WSClient) Unsubscribe(ctx context.Context, eventType string) error
- func (c *WSClient) UnsubscribeAll(ctx context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MaxReconnectAttempts ¶ added in v0.10.4
MaxReconnectAttempts sets the maximum number of reconnect attempts before returning an error. It should only be used in the constructor and is not Goroutine-safe.
func OnReconnect ¶ added in v0.11.1
func OnReconnect(cb func()) func(*WSClient)
OnReconnect sets the callback, which will be called every time after successful reconnect.
func PingPeriod ¶ added in v0.10.4
PingPeriod sets the duration for sending websocket pings. It should only be used in the constructor - not Goroutine-safe.
Types ¶
type HTTPClient ¶
type HTTPClient interface {
Call(method string, params map[string]interface{}, result interface{}) (interface{}, error)
}
HTTPClient is a common interface for JSONRPCClient and URIClient.
type JSONRPCClient ¶
type JSONRPCClient struct {
// contains filtered or unexported fields
}
JSON rpc takes params as a slice
func NewJSONRPCClient ¶
func NewJSONRPCClient(remote string) *JSONRPCClient
type URIClient ¶
type URIClient struct {
// contains filtered or unexported fields
}
URI takes params as a map
func NewURIClient ¶
type WSClient ¶
type WSClient struct { cmn.BaseService Address string // IP:PORT or /path/to/socket Endpoint string // /websocket/url/endpoint Dialer func(string, string) (net.Conn, error) // Time between sending a ping and receiving a pong. See // https://godoc.org/github.com/rcrowley/go-metrics#Timer. PingPongLatencyTimer metrics.Timer // user facing channels, closed only when the client is being stopped. ResultsCh chan json.RawMessage ErrorsCh chan error // contains filtered or unexported fields }
WSClient is a WebSocket client. The methods of WSClient are safe for use by multiple goroutines.
func NewWSClient ¶
NewWSClient returns a new client. See the commentary on the func(*WSClient) functions for a detailed description of how to configure ping period and pong wait time. The endpoint argument must begin with a `/`.
func (*WSClient) CallWithArrayParams ¶ added in v0.10.4
func (c *WSClient) CallWithArrayParams(ctx context.Context, method string, params []interface{}) error
CallWithArrayParams the given method with params in a form of array. See Send description.
func (*WSClient) IsActive ¶ added in v0.10.4
IsActive returns true if the client is running and not reconnecting.
func (*WSClient) IsReconnecting ¶ added in v0.10.4
IsReconnecting returns true if the client is reconnecting right now.
func (*WSClient) OnStart ¶
OnStart implements cmn.Service by dialing a server and creating read and write routines.
func (*WSClient) Send ¶ added in v0.10.4
Send the given RPC request to the server. Results will be available on ResultsCh, errors, if any, on ErrorsCh. Will block until send succeeds or ctx.Done is closed.
func (*WSClient) Stop ¶ added in v0.10.4
Stop overrides cmn.Service#Stop. There is no other way to wait until Quit channel is closed.
func (*WSClient) Subscribe ¶
Subscribe to an event. Note the server must have a "subscribe" route defined.
func (*WSClient) Unsubscribe ¶
Unsubscribe from an event. Note the server must have a "unsubscribe" route defined.