Documentation
¶
Index ¶
Constants ¶
View Source
const MaxConsecutiveRequestFailures = 10
MaxConsecutiveRequestFailures controls how many consecutive requests are allowed to time out before we reset the connection
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
services.Service
pb.MercuryClient
ServerURL() string
RawClient() pb.MercuryClient
}
func NewClient ¶
func NewClient(opts ClientOpts) Client
Consumers of wsrpc package should not usually call NewClient directly, but instead use the Pool
type ClientOpts ¶
type ClientOpts struct {
Logger logger.SugaredLogger
CSASigner crypto.Signer
ServerPubKey []byte
ServerURL string
CacheSet cache.CacheSet
// DialWithContext allows optional dependency injection for testing
DialWithContext DialWithContextFunc
}
type Conn ¶
type Conn interface {
wsrpc.ClientInterface
WaitForReady(ctx context.Context) bool
GetState() grpc_connectivity.State
Close() error
}
type DialWithContextFunc ¶
type GRPCCompatibilityWrapper ¶
type GRPCCompatibilityWrapper struct {
Client
}
func (GRPCCompatibilityWrapper) Transmit ¶
func (w GRPCCompatibilityWrapper) Transmit(ctx context.Context, in *rpc.TransmitRequest) (*rpc.TransmitResponse, error)
type Pool ¶
type Pool interface {
services.Service
// Checkout gets a wsrpc.Client for the given arguments
// The same underlying client can be checked out multiple times, the pool
// handles lifecycle management. The consumer can treat it as if it were
// its own unique client.
Checkout(ctx context.Context, clientPubKeyHex string, clientSigner crypto.Signer, serverPubKey []byte, serverURL string) (client Client, err error)
}
Click to show internal directories.
Click to hide internal directories.