Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MaxReconnectAttempts

func MaxReconnectAttempts(max int) func(*WSClient)

    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

    func OnReconnect(cb func()) func(*WSClient)

      OnReconnect sets the callback, which will be called every time after successful reconnect.

      func PingPeriod

      func PingPeriod(pingPeriod time.Duration) func(*WSClient)

        PingPeriod sets the duration for sending websocket pings. It should only be used in the constructor - not Goroutine-safe.

        func ReadWait

        func ReadWait(readWait time.Duration) func(*WSClient)

          ReadWait sets the amount of time to wait before a websocket read times out. It should only be used in the constructor and is not Goroutine-safe.

          func WriteWait

          func WriteWait(writeWait time.Duration) func(*WSClient)

            WriteWait sets the amount of time to wait before a websocket write times out. It should only be used in the constructor and is not Goroutine-safe.

            Types

            type HTTPClient

            type HTTPClient interface {
            	Call(method string, params map[string]interface{}, result interface{}) (interface{}, error)
            	Codec() *amino.Codec
            	SetCodec(*amino.Codec)
            }

              HTTPClient is a common interface for JSONRPCClient and URIClient.

              type JSONRPCClient

              type JSONRPCClient struct {
              	// contains filtered or unexported fields
              }

                JSONRPCClient takes params as a slice

                func NewJSONRPCClient

                func NewJSONRPCClient(remote string) *JSONRPCClient

                  NewJSONRPCClient returns a JSONRPCClient pointed at the given address.

                  func (*JSONRPCClient) Call

                  func (c *JSONRPCClient) Call(method string, params map[string]interface{}, result interface{}) (interface{}, error)

                  func (*JSONRPCClient) Codec

                  func (c *JSONRPCClient) Codec() *amino.Codec

                  func (*JSONRPCClient) SetCodec

                  func (c *JSONRPCClient) SetCodec(cdc *amino.Codec)

                  type URIClient

                  type URIClient struct {
                  	// contains filtered or unexported fields
                  }

                    URI takes params as a map

                    func NewURIClient

                    func NewURIClient(remote string) *URIClient

                    func (*URIClient) Call

                    func (c *URIClient) Call(method string, params map[string]interface{}, result interface{}) (interface{}, error)

                    func (*URIClient) Codec

                    func (c *URIClient) Codec() *amino.Codec

                    func (*URIClient) SetCodec

                    func (c *URIClient) SetCodec(cdc *amino.Codec)

                    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
                    
                    	// Single user facing channel to read RPCResponses from, closed only when the client is being stopped.
                    	ResponsesCh chan types.RPCResponse
                    	// contains filtered or unexported fields
                    }

                      WSClient is a WebSocket client. The methods of WSClient are safe for use by multiple goroutines.

                      func NewWSClient

                      func NewWSClient(remoteAddr, endpoint string, options ...func(*WSClient)) *WSClient

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

                        func (c *WSClient) Call(ctx context.Context, method string, params map[string]interface{}) error

                          Call the given method. See Send description.

                          func (*WSClient) CallWithArrayParams

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

                            func (c *WSClient) Codec() *amino.Codec

                            func (*WSClient) IsActive

                            func (c *WSClient) IsActive() bool

                              IsActive returns true if the client is running and not reconnecting.

                              func (*WSClient) IsReconnecting

                              func (c *WSClient) IsReconnecting() bool

                                IsReconnecting returns true if the client is reconnecting right now.

                                func (*WSClient) OnStart

                                func (c *WSClient) OnStart() error

                                  OnStart implements cmn.Service by dialing a server and creating read and write routines.

                                  func (*WSClient) Send

                                  func (c *WSClient) Send(ctx context.Context, request types.RPCRequest) error

                                    Send the given RPC request to the server. Results will be available on ResponsesCh, errors, if any, on ErrorsCh. Will block until send succeeds or ctx.Done is closed.

                                    func (*WSClient) SetCodec

                                    func (c *WSClient) SetCodec(cdc *amino.Codec)

                                    func (*WSClient) Stop

                                    func (c *WSClient) Stop() error

                                      Stop overrides cmn.Service#Stop. There is no other way to wait until Quit channel is closed.

                                      func (*WSClient) String

                                      func (c *WSClient) String() string

                                        String returns WS client full address.

                                        func (*WSClient) Subscribe

                                        func (c *WSClient) Subscribe(ctx context.Context, query string) error

                                          Subscribe to a query. Note the server must have a "subscribe" route defined.

                                          func (*WSClient) Unsubscribe

                                          func (c *WSClient) Unsubscribe(ctx context.Context, query string) error

                                            Unsubscribe from a query. Note the server must have a "unsubscribe" route defined.

                                            func (*WSClient) UnsubscribeAll

                                            func (c *WSClient) UnsubscribeAll(ctx context.Context) error

                                              UnsubscribeAll from all. Note the server must have a "unsubscribe_all" route defined.