Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
InvalidParamsError = NewJsonRPCError(-32700, "Invalid params")
)
Functions ¶
This section is empty.
Types ¶
type FuncHandler ¶
type FuncHandler func(params interface{}) (result interface{}, err *JsonRPCError)
FuncHandler JsonRPC 处理函数类型,传入 <params> 函数需要根据自己的要求获取数据. 传出参数为 <err> 不为空时返回 error 数据, 否则返回 <result> 数据.
type JsonRPCError ¶
type JsonRPCError struct {
Code int `json:"code,omitempty"`
Message string `json:"message,omitempty"`
Data interface{} `json:"data,omitempty"`
}
func NewJsonRPCError ¶
func NewJsonRPCError(code int, message string, data ...interface{}) *JsonRPCError
type JsonRPCReq ¶ added in v0.9.0
type JsonRPCReq struct {
internal.JsonRPCBase
Method string `json:"method"`
Params interface{} `json:"params"`
}
func DefaultReq ¶
func DefaultReq() *JsonRPCReq
func NewJsonrpcReq ¶
func NewJsonrpcReq(json string) *JsonRPCReq
type JsonRPCRes ¶ added in v0.9.0
type JsonRPCRes struct {
internal.JsonRPCBase
Result interface{} `json:"result,omitempty"`
Error *JsonRPCError `json:"error,omitempty"`
}
func NewJsonRPCRes ¶
func NewJsonRPCRes(req *JsonRPCReq) *JsonRPCRes
func NewJsonRPCResWithError ¶
func NewJsonRPCResWithError(req *JsonRPCReq, err *JsonRPCError) *JsonRPCRes
func NewJsonRPCResWithResult ¶
func NewJsonRPCResWithResult(req *JsonRPCReq, result interface{}) *JsonRPCRes
func (*JsonRPCRes) Bytes ¶ added in v0.9.0
func (j *JsonRPCRes) Bytes() []byte
func (*JsonRPCRes) JsonStr ¶ added in v0.9.0
func (j *JsonRPCRes) JsonStr() string
type Manager ¶
type Manager interface {
// Register 注册处理函数
Register(context.Context, string, FuncHandler) error
// Call 根据 RPC 执行函数
Call(context.Context, *JsonRPCReq) *JsonRPCRes
// CallByString 字符串形式的 RPC 执行函数
CallByString(context.Context, string) *JsonRPCRes
// CallByBytes Byte 数组形式的 RPC 执行函数调用
CallByBytes(context.Context, []byte) *JsonRPCRes
// Run 线程形式运行的 RPC 函数, 结果会在 ResultCh 中
Run(context.Context, *JsonRPCReq)
// RunByString 字符串形式的运行
RunByString(context.Context, string)
// RunByBytes Byte 数组形式的运行
RunByBytes(context.Context, []byte)
// ResultCh 结果通道
ResultCh() <-chan *JsonRPCRes
}
Click to show internal directories.
Click to hide internal directories.