Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultCallback(req *MsgRpc) []byte
- type CallbackFunc
- type DefaultRpcEncoder
- type EncoderRpc
- type Handler
- type HandlerItem
- type MessageType
- type MsgRpc
- type NatsRpc
- func (r *NatsRpc) DealMsg(msg *nats.Msg, callback CallbackFunc, coder EncoderRpc)
- func (r *NatsRpc) DecodeMsg(codeType string, data []byte, v interface{}) error
- func (r *NatsRpc) EncodeMsg(coder EncoderRpc, msgType MessageType, msgId int32, req interface{}) ([]byte, error)
- func (r *NatsRpc) Find(serverType string, arg any) *treaty.Server
- func (r *NatsRpc) GetCoder(codeType string) EncoderRpc
- func (r *NatsRpc) GetServer() *treaty.Server
- func (r *NatsRpc) Publish(s ReqBuilder) error
- func (r *NatsRpc) PublishBroadcast(s ReqBuilder) error
- func (r *NatsRpc) QueueSubscribe(s RssBuilder) error
- func (r *NatsRpc) RegEncoder(typ string, encoder EncoderRpc)
- func (r *NatsRpc) RemoveFindCache(arg any)
- func (r *NatsRpc) Request(s ReqBuilder) error
- func (r *NatsRpc) Response(codeType string, v interface{}) []byte
- func (r *NatsRpc) Subscribe(s RssBuilder) error
- func (r *NatsRpc) SubscribeBroadcast(s RssBuilder) error
- type NatsRpcOption
- func WithNatsDebugMsg(debug bool) NatsRpcOption
- func WithNatsDialTimeout(timeout time.Duration) NatsRpcOption
- func WithNatsEndpoints(endpoints []string) NatsRpcOption
- func WithNatsOptions(opts ...nats.Option) NatsRpcOption
- func WithNatsPrefix(prefix string) NatsRpcOption
- func WithNatsServer(server *treaty.Server) NatsRpcOption
- type ReqBuilder
- func (r *ReqBuilder) Build() ReqBuilder
- func (r *ReqBuilder) SetCodeType(codeType string) *ReqBuilder
- func (r *ReqBuilder) SetMsgId(msgId int32) *ReqBuilder
- func (r *ReqBuilder) SetReq(req interface{}) *ReqBuilder
- func (r *ReqBuilder) SetResp(resp interface{}) *ReqBuilder
- func (r *ReqBuilder) SetServer(server *treaty.Server) *ReqBuilder
- func (r *ReqBuilder) SetServerType(serverType string) *ReqBuilder
- func (r *ReqBuilder) SetSuffix(suffix string) *ReqBuilder
- type RssBuilder
- func (r *RssBuilder) Build() RssBuilder
- func (r *RssBuilder) SetCallback(callback CallbackFunc) *RssBuilder
- func (r *RssBuilder) SetCodeType(codeType string) *RssBuilder
- func (r *RssBuilder) SetParallel(parallel bool) *RssBuilder
- func (r *RssBuilder) SetQueue(queue string) *RssBuilder
- func (r *RssBuilder) SetServer(server *treaty.Server) *RssBuilder
- func (r *RssBuilder) SetSuffix(suffix string) *RssBuilder
- type ServerCreator
- type ServerEntity
- type ServerRpc
Constants ¶
View Source
const ( Balancer = "balancer" Connector = "connector" Server = "backend" Database = "database" )
View Source
const ( DefaultQueue = "dq" DefaultSuffix = "" JsonSuffix = "json" )
View Source
const ( CodeTypeJson = "json" CodeTypeProto = "proto" )
View Source
const ( Request MessageType = 0x00 Publish = 0x01 Response = 0x02 )
Message types
Variables ¶
View Source
var (
ErrInvalidMessage = errors.New("invalid message")
)
Functions ¶
func DefaultCallback ¶
Types ¶
type CallbackFunc ¶
type DefaultRpcEncoder ¶
type DefaultRpcEncoder struct {
// contains filtered or unexported fields
}
func NewRpcEncoder ¶
func NewRpcEncoder(encoder serialize.Serializer) *DefaultRpcEncoder
func (*DefaultRpcEncoder) Decode ¶
func (r *DefaultRpcEncoder) Decode(data []byte, rpcMsg *MsgRpc) error
func (*DefaultRpcEncoder) DecodeMsg ¶
func (r *DefaultRpcEncoder) DecodeMsg(data []byte, v interface{}) error
func (*DefaultRpcEncoder) Encode ¶
func (r *DefaultRpcEncoder) Encode(rpcMsg *MsgRpc) ([]byte, error)
Encode Protocol --------<length>--------|--type--|----<MsgId>------|-<data>- ----------3byte---------|-1 byte-|-----2 byte------|--------
func (*DefaultRpcEncoder) Response ¶
func (r *DefaultRpcEncoder) Response(v interface{}) []byte
type EncoderRpc ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler() *Handler
type HandlerItem ¶
type HandlerItem struct { MsgType MessageType InType reflect.Type Func reflect.Value }
type MessageType ¶
type MessageType byte
type MsgRpc ¶
type MsgRpc struct { MsgType MessageType MsgId int32 MsgData interface{} }
type NatsRpc ¶
type NatsRpc struct { Endpoints []string Options []nats.Option Client *nats.Conn DialTimeout time.Duration RpcCoder map[string]EncoderRpc Server *treaty.Server DebugMsg bool Prefix string Finder *discover.Finder }
func NewRpcNats ¶
func NewRpcNats(opts ...NatsRpcOption) *NatsRpc
func (*NatsRpc) DealMsg ¶
func (r *NatsRpc) DealMsg(msg *nats.Msg, callback CallbackFunc, coder EncoderRpc)
func (*NatsRpc) EncodeMsg ¶
func (r *NatsRpc) EncodeMsg(coder EncoderRpc, msgType MessageType, msgId int32, req interface{}) ([]byte, error)
func (*NatsRpc) GetCoder ¶
func (r *NatsRpc) GetCoder(codeType string) EncoderRpc
func (*NatsRpc) Publish ¶
func (r *NatsRpc) Publish(s ReqBuilder) error
func (*NatsRpc) PublishBroadcast ¶
func (r *NatsRpc) PublishBroadcast(s ReqBuilder) error
func (*NatsRpc) QueueSubscribe ¶
func (r *NatsRpc) QueueSubscribe(s RssBuilder) error
func (*NatsRpc) RegEncoder ¶
func (r *NatsRpc) RegEncoder(typ string, encoder EncoderRpc)
func (*NatsRpc) RemoveFindCache ¶
func (*NatsRpc) Request ¶
func (r *NatsRpc) Request(s ReqBuilder) error
func (*NatsRpc) Subscribe ¶
func (r *NatsRpc) Subscribe(s RssBuilder) error
func (*NatsRpc) SubscribeBroadcast ¶
func (r *NatsRpc) SubscribeBroadcast(s RssBuilder) error
type NatsRpcOption ¶
type NatsRpcOption func(r *NatsRpc)
func WithNatsDebugMsg ¶
func WithNatsDebugMsg(debug bool) NatsRpcOption
func WithNatsDialTimeout ¶
func WithNatsDialTimeout(timeout time.Duration) NatsRpcOption
func WithNatsEndpoints ¶
func WithNatsEndpoints(endpoints []string) NatsRpcOption
func WithNatsOptions ¶
func WithNatsOptions(opts ...nats.Option) NatsRpcOption
func WithNatsPrefix ¶
func WithNatsPrefix(prefix string) NatsRpcOption
func WithNatsServer ¶
func WithNatsServer(server *treaty.Server) NatsRpcOption
type ReqBuilder ¶
type ReqBuilder struct {
// contains filtered or unexported fields
}
func NewReqBuilder ¶
func NewReqBuilder(server *treaty.Server) *ReqBuilder
func (*ReqBuilder) Build ¶
func (r *ReqBuilder) Build() ReqBuilder
func (*ReqBuilder) SetCodeType ¶
func (r *ReqBuilder) SetCodeType(codeType string) *ReqBuilder
func (*ReqBuilder) SetMsgId ¶
func (r *ReqBuilder) SetMsgId(msgId int32) *ReqBuilder
func (*ReqBuilder) SetReq ¶
func (r *ReqBuilder) SetReq(req interface{}) *ReqBuilder
func (*ReqBuilder) SetResp ¶
func (r *ReqBuilder) SetResp(resp interface{}) *ReqBuilder
func (*ReqBuilder) SetServer ¶
func (r *ReqBuilder) SetServer(server *treaty.Server) *ReqBuilder
func (*ReqBuilder) SetServerType ¶
func (r *ReqBuilder) SetServerType(serverType string) *ReqBuilder
func (*ReqBuilder) SetSuffix ¶
func (r *ReqBuilder) SetSuffix(suffix string) *ReqBuilder
type RssBuilder ¶
type RssBuilder struct {
// contains filtered or unexported fields
}
func NewRssBuilder ¶
func NewRssBuilder(server *treaty.Server) *RssBuilder
func (*RssBuilder) Build ¶
func (r *RssBuilder) Build() RssBuilder
func (*RssBuilder) SetCallback ¶
func (r *RssBuilder) SetCallback(callback CallbackFunc) *RssBuilder
func (*RssBuilder) SetCodeType ¶
func (r *RssBuilder) SetCodeType(codeType string) *RssBuilder
func (*RssBuilder) SetParallel ¶
func (r *RssBuilder) SetParallel(parallel bool) *RssBuilder
func (*RssBuilder) SetQueue ¶
func (r *RssBuilder) SetQueue(queue string) *RssBuilder
func (*RssBuilder) SetServer ¶
func (r *RssBuilder) SetServer(server *treaty.Server) *RssBuilder
func (*RssBuilder) SetSuffix ¶
func (r *RssBuilder) SetSuffix(suffix string) *RssBuilder
type ServerCreator ¶
type ServerCreator func(s *treaty.Server) (ServerEntity, error)
type ServerEntity ¶
type ServerEntity interface { Init() //初始化 AfterInit() //初始化后执行操作 BeforeShutdown() //服务关闭前操作 Shutdown() //服务关闭操作 HandleSelfEvent(req *MsgRpc) []byte //处理自己的事件 HandleBroadcastEvent(req *MsgRpc) []byte //处理广播事件 }
ServerEntity server entity
type ServerRpc ¶
type ServerRpc interface { RegEncoder(typ string, encoder EncoderRpc) //register encoder Subscribe(s RssBuilder) error //self Subscribe SubscribeBroadcast(s RssBuilder) error //broadcast subscribe QueueSubscribe(s RssBuilder) error //queue self Subscribe Publish(s ReqBuilder) error //publish PublishBroadcast(s ReqBuilder) error //broadcast publish Request(s ReqBuilder) error //request Response(codeType string, v interface{}) []byte //response the msg DecodeMsg(codeType string, data []byte, v interface{}) error //decode msg GetCoder(codeType string) EncoderRpc //get encoder GetServer() *treaty.Server //get current server Find(serverType string, arg any) *treaty.Server //find server RemoveFindCache(arg any) //clear find cache }
ServerRpc rpc interface
Source Files
¶
Click to show internal directories.
Click to hide internal directories.