Documentation ¶
Overview ¶
Package mqrpc rpc接口定义
Index ¶
- Variables
- func Bool(reply interface{}, err interface{}) (bool, error)
- func Bytes(reply interface{}, err interface{}) ([]byte, error)
- func Float64(reply interface{}, err interface{}) (float64, error)
- func Int(reply interface{}, err interface{}) (int, error)
- func Int64(reply interface{}, err interface{}) (int64, error)
- func InterfaceMap(reply interface{}, err interface{}) (map[string]interface{}, error)
- func Marshal(mrsp interface{}, ff func() (reply interface{}, err interface{})) error
- func Proto(mrsp interface{}, ff func() (reply interface{}, err interface{})) error
- func String(reply interface{}, err interface{}) (string, error)
- func StringMap(reply interface{}, err interface{}) (map[string]string, error)
- type CallInfo
- type FunctionInfo
- type GoroutineControl
- type MQServer
- type Marshaler
- type ParamOption
- type RPCClient
- type RPCListener
- type RPCServer
Constants ¶
This section is empty.
Variables ¶
var ErrNil = errors.New("mqrpc: nil returned")
ErrNil ErrNil
Functions ¶
func Bytes ¶
Bytes is a helper that converts a command reply to a slice of bytes. If err is not equal to nil, then Bytes returns nil, err. Otherwise Bytes converts the reply to a slice of bytes as follows:
Reply type Result bulk string reply, nil simple string []byte(reply), nil nil nil, ErrNil other nil, error
func Float64 ¶
Float64 is a helper that converts a command reply to 64 bit float. If err is not equal to nil, then Float64 returns 0, err. Otherwise, Float64 converts the reply to an int as follows:
Reply type Result bulk string parsed reply, nil nil 0, ErrNil other 0, error
func Int64 ¶
Int64 is a helper that converts a command reply to 64 bit integer. If err is not equal to nil, then Int returns 0, err. Otherwise, Int64 converts the reply to an int64 as follows:
Reply type Result integer reply, nil bulk string parsed reply, nil nil 0, ErrNil other 0, error
func InterfaceMap ¶
InterfaceMap InterfaceMap
func Marshal ¶
func Marshal(mrsp interface{}, ff func() (reply interface{}, err interface{})) error
Marshal Marshal
func Proto ¶
func Proto(mrsp interface{}, ff func() (reply interface{}, err interface{})) error
Proto Proto
func String ¶
String is a helper that converts a command reply to a string. If err is not equal to nil, then String returns "", err. Otherwise String converts the reply to a string as follows:
Reply type Result bulk string string(reply), nil simple string reply, nil nil "", ErrNil other "", error
Types ¶
type CallInfo ¶
type CallInfo struct { RPCInfo *rpcpb.RPCInfo Result *rpcpb.ResultInfo Props map[string]interface{} ExecTime int64 Agent MQServer //代理者 AMQPServer / LocalServer 都继承 Callback(callinfo CallInfo)(error) 方法 }
CallInfo RPC的请求信息
type FunctionInfo ¶
type FunctionInfo struct { Function reflect.Value FuncType reflect.Type InType []reflect.Type Goroutine bool }
FunctionInfo handler接口信息
type GoroutineControl ¶
type GoroutineControl interface { Wait() error Finish() }
GoroutineControl 服务协程数量控制
type Marshaler ¶
Marshaler is a simple encoding interface used for the broker/transport where headers are not supported by the underlying implementation.
type RPCClient ¶
type RPCClient interface { Done() (err error) CallArgs(ctx context.Context, _func string, ArgsType []string, args [][]byte) (interface{}, string) CallNRArgs(_func string, ArgsType []string, args [][]byte) (err error) Call(ctx context.Context, _func string, params ...interface{}) (interface{}, string) CallNR(_func string, params ...interface{}) (err error) }
RPCClient 客户端定义
type RPCListener ¶
type RPCListener interface { /** NoFoundFunction 当未找到请求的handler时会触发该方法 *FunctionInfo 选择可执行的handler return error */ NoFoundFunction(fn string) (*FunctionInfo, error) /** BeforeHandle会对请求做一些前置处理,如:检查当前玩家是否已登录,打印统计日志等。 @session 可能为nil return error 当error不为nil时将直接返回改错误信息而不会再执行后续调用 */ BeforeHandle(fn string, callInfo *CallInfo) error OnTimeOut(fn string, Expired int64) OnError(fn string, callInfo *CallInfo, err error) /** fn 方法名 params 参数 result 执行结果 exec_time 方法执行时间 单位为 Nano 纳秒 1000000纳秒等于1毫秒 */ OnComplete(fn string, callInfo *CallInfo, result *rpcpb.ResultInfo, execTime int64) }
RPCListener 事件监听器
type RPCServer ¶
type RPCServer interface { Addr() string SetListener(listener RPCListener) SetGoroutineControl(control GoroutineControl) GetExecuting() int64 Register(id string, f interface{}) RegisterGO(id string, f interface{}) Done() (err error) }
RPCServer 服务定义