Documentation
¶
Index ¶
- Variables
- type Client
- type Http
- type HttpConfig
- type MessageHandler
- type Router
- type Websocket
- func (ws *Websocket) Close() error
- func (ws *Websocket) ClusterInfo(replicaSets ...uint64) (*rony.Edges, error)
- func (ws *Websocket) ConnInfo() string
- func (ws *Websocket) GetRequestID() uint64
- func (ws *Websocket) Send(req, res *rony.MessageEnvelope) (err error)
- func (ws *Websocket) SendWithDetails(req, res *rony.MessageEnvelope, retry int, timeout time.Duration) error
- func (ws *Websocket) Start() error
- type WebsocketConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNoConnection = fmt.Errorf("no connection") ErrNoHost = fmt.Errorf("no host") ErrTimeout = fmt.Errorf("time out") ErrReplicaMaster = fmt.Errorf("leader redirect") ErrReplicaSetSession = fmt.Errorf("replica redirect session") ErrReplicaSetRequest = fmt.Errorf("replica redirect request") ErrUnknownResponse = fmt.Errorf("unknown response") )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
Send(req, res *rony.MessageEnvelope) error
Close() error
GetRequestID() uint64
}
type Http ¶ added in v0.0.49
type Http struct {
// contains filtered or unexported fields
}
Http connects to edge servers with HTTP transport.
func NewHttp ¶ added in v0.0.49
func NewHttp(config HttpConfig) *Http
func (*Http) GetRequestID ¶ added in v0.0.49
GetRequestID implements Client interface
func (*Http) Send ¶ added in v0.0.49
func (h *Http) Send(req *rony.MessageEnvelope, res *rony.MessageEnvelope) error
func (*Http) SendWithDetails ¶ added in v0.1.8
func (h *Http) SendWithDetails(req *rony.MessageEnvelope, res *rony.MessageEnvelope, retry int, timeout time.Duration) (err error)
type HttpConfig ¶ added in v0.0.49
type HttpConfig struct {
Name string
SeedHostPort string
HeaderFunc func() map[string]string
ReadTimeout time.Duration
WriteTimeout time.Duration
ContextTimeout time.Duration
RequestMaxRetry int
Router Router
Secure bool
}
HttpConfig holds the configurations for the Http client.
type MessageHandler ¶
type MessageHandler func(m *rony.MessageEnvelope)
type Router ¶ added in v0.1.5
type Router interface {
UpdateRoute(req *rony.MessageEnvelope, replicaSet uint64)
GetRoute(req *rony.MessageEnvelope) (replicaSet uint64)
}
type Websocket ¶
type Websocket struct {
// contains filtered or unexported fields
}
Websocket client which could handle multiple connections
func NewWebsocket ¶
func NewWebsocket(config WebsocketConfig) *Websocket
func (*Websocket) ClusterInfo ¶ added in v0.6.54
func (*Websocket) GetRequestID ¶
func (*Websocket) SendWithDetails ¶
type WebsocketConfig ¶ added in v0.0.49
type WebsocketConfig struct {
SeedHostPort string
IdleTimeout time.Duration
DialTimeout time.Duration
// Handler must not block in function because other incoming messages might get blocked.
// This handler must returns quickly and pass a deep copy of the MessageEnvelope to other
// routines.
Handler MessageHandler
HeaderFunc func() map[string]string
Secure bool
// RequestMaxRetry is the maximum number client sends a request if any network layer error occurs
RequestMaxRetry int
// RequestTimeout is the timeout for each individual request on each try.
RequestTimeout time.Duration
// ContextTimeout is the amount that Send function will wait until times out. This includes all the retries.
ContextTimeout time.Duration
Router Router
}
WebsocketConfig holds the configs for the Websocket client
Click to show internal directories.
Click to hide internal directories.