rpcclient

package
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2017 License: Apache-2.0 Imports: 18 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MaxReconnectAttempts added in v0.10.4

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

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 added in v0.10.4

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 added in v0.10.4

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

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

func (*JSONRPCClient) Call

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

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)

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

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

func (c *WSClient) IsActive() bool

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

func (*WSClient) IsReconnecting added in v0.10.4

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

func (c *WSClient) OnStop()

OnStop implements cmn.Service.

func (*WSClient) Send added in v0.10.4

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

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

func (c *WSClient) Stop() bool

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, eventType string) error

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

func (*WSClient) Unsubscribe

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

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

func (*WSClient) UnsubscribeAll added in v0.10.4

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

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL