Documentation ¶
Index ¶
Constants ¶
const ( // PACKAGE_LESS shows is not a completed package. PACKAGE_LESS = iota // PACKAGE_FULL shows is a completed package. PACKAGE_FULL // PACKAGE_ERROR shows is a error package. PACKAGE_ERROR )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientProtocol ¶
ClientProtocol interface for handling tars client package.
type ServerHandler ¶
type ServerHandler interface { Listen() error Handle() error OnShutdown() CloseIdles(n int64) bool }
ServerHandler is interface with listen and handler method
type ServerProtocol ¶
type ServerProtocol interface { Invoke(ctx context.Context, pkg []byte) []byte ParsePackage(buff []byte) (int, int) InvokeTimeout(pkg []byte) []byte GetCloseMsg() []byte }
ServerProtocol is interface for handling the server side tars package.
type TarsClient ¶
type TarsClient struct {
// contains filtered or unexported fields
}
TarsClient is struct for tars client.
func NewTarsClient ¶
func NewTarsClient(address string, cp ClientProtocol, conf *TarsClientConf) *TarsClient
NewTarsClient new tars client and init it .
func (*TarsClient) Close ¶
func (tc *TarsClient) Close()
Close close the client connection with the server.
func (*TarsClient) GraceClose ¶
func (c *TarsClient) GraceClose(ctx context.Context)
GraceClose close client gracefully
func (*TarsClient) ReConnect ¶
func (tc *TarsClient) ReConnect() error
ReConnect established the client connection with the server.
func (*TarsClient) Send ¶
func (tc *TarsClient) Send(req []byte) error
Send sends the request to the server as []byte.
type TarsClientConf ¶
type TarsClientConf struct { Proto string ClientProto ClientProtocol QueueLen int IdleTimeout time.Duration ReadTimeout time.Duration WriteTimeout time.Duration DialTimeout time.Duration }
TarsClientConf is tars client side config
type TarsServer ¶
type TarsServer struct {
// contains filtered or unexported fields
}
TarsServer tars server struct.
func NewTarsServer ¶
func NewTarsServer(svr ServerProtocol, conf *TarsServerConf) *TarsServer
NewTarsServer new TarsServer and init with conf.
func (*TarsServer) GetConfig ¶
func (ts *TarsServer) GetConfig() *TarsServerConf
GetConfig gets the tars server config.
func (*TarsServer) IsZombie ¶
func (ts *TarsServer) IsZombie(timeout time.Duration) bool
IsZombie show whether the server is hanged by the request.
func (*TarsServer) Listen ¶
func (ts *TarsServer) Listen() error
Listen listens on the network address
type TarsServerConf ¶
type TarsServerConf struct { Proto string Address string MaxInvoke int32 AcceptTimeout time.Duration ReadTimeout time.Duration WriteTimeout time.Duration HandleTimeout time.Duration IdleTimeout time.Duration QueueCap int TCPReadBuffer int TCPWriteBuffer int TCPNoDelay bool }
TarsServerConf server config for tars server side.