标签:method 需要 func transport make for min nal content
go-micro 支持很多通信协议:http、tcp、grpc等,支持的编码方式也很多有json、protobuf、bytes、jsonrpc等。也可以根据自己的需要实现通信协议和编码方式。go-micro 默认的通信协议是http,默认的编码方式是protobuf。
主要代码定义如下:
// Client is the interface used to make requests to services. // It supports Request/Response via Transport and Publishing via the Broker. // It also supports bidiectional streaming of requests. type Client interface { Init(...Option) error Options() Options NewMessage(topic string, msg interface{}, opts ...MessageOption) Message NewRequest(service, method string, req interface{}, reqOpts ...RequestOption) Request Call(ctx context.Context, req Request, rsp interface{}, opts ...CallOption) error Stream(ctx context.Context, req Request, opts ...CallOption) (Stream, error) Publish(ctx context.Context, msg Message, opts ...PublishOption) error String() string } // Message is the interface for publishing asynchronously type Message interface { Topic() string Payload() interface{} ContentType() string } // Request is the interface for a synchronous request used by Call or Stream type Request interface { Service() string Method() string ContentType() string Request() interface{} // indicates whether the request will be a streaming one rather than unary Stream() bool } // Stream is the inteface for a bidirectional synchronous stream type Stream interface { Context() context.Context Request() Request Send(interface{}) error Recv(interface{}) error Error() error Close() error } // Option used by the Client type Option func(*Options) // CallOption used by Call or Stream type CallOption func(*CallOptions) // PublishOption used by Publish type PublishOption func(*PublishOptions) // MessageOption used by NewMessage type MessageOption func(*MessageOptions) // RequestOption used by NewRequest type RequestOption func(*RequestOptions)
标签:method 需要 func transport make for min nal content
原文地址:https://www.cnblogs.com/linguoguo/p/14751436.html