Documentation
¶
Index ¶
- Variables
- func HTTPHandler(rpc *JSONRPC2) fasthttp.RequestHandler
- func Handler(rpc *JSONRPC2, upgrader *websocket.FastHTTPUpgrader) fasthttp.RequestHandler
- func HandlerWithCORS(rpc *JSONRPC2) fasthttp.RequestHandler
- func IsRPCError(err error) bool
- type JSONRPC2
- func (j *JSONRPC2) GetRegisteredMethods() []string
- func (j *JSONRPC2) HandleMessage(message []byte) ([]byte, error)
- func (j *JSONRPC2) RegisterMethod(name string, method RPCMethod)
- func (j *JSONRPC2) RegisterMethodFunc(name string, method func(params *fastjson.Value) (interface{}, error))
- func (j *JSONRPC2) RegisterObject(obj interface{}, prefix ...string) error
- func (j *JSONRPC2) RegisterObjectMethods(obj interface{}, methodNames []string, prefix ...string) error
- func (j *JSONRPC2) RegisterTestService(prefix ...string)
- type RPCError
- type RPCMethod
- type TestService
- func (t *TestService) Add(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) BatchDemo(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) Count(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) Divide(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) Echo(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) Multiply(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) Ping(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
- func (t *TestService) SlowOperation(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrParseError = &RPCError{Code: -32700, Message: "Parse error"} ErrInvalidRequest = &RPCError{Code: -32600, Message: "Invalid Request"} ErrMethodNotFound = &RPCError{Code: -32601, Message: "Method not found"} ErrInvalidParams = &RPCError{Code: -32602, Message: "Invalid params"} ErrInternalError = &RPCError{Code: -32603, Message: "Internal error"} )
预定义的错误类型
Functions ¶
func HTTPHandler ¶
func HTTPHandler(rpc *JSONRPC2) fasthttp.RequestHandler
HTTPHandler 创建 HTTP POST JSON-RPC 处理器
func Handler ¶
func Handler(rpc *JSONRPC2, upgrader *websocket.FastHTTPUpgrader) fasthttp.RequestHandler
Handler 创建 WebSocket JSON-RPC 处理器
func HandlerWithCORS ¶
func HandlerWithCORS(rpc *JSONRPC2) fasthttp.RequestHandler
HandlerWithCORS 创建支持 CORS 的 HTTP POST JSON-RPC 处理器
Types ¶
type JSONRPC2 ¶
type JSONRPC2 struct {
// contains filtered or unexported fields
}
JSONRPC2 JSON-RPC 2.0 处理器
func (*JSONRPC2) GetRegisteredMethods ¶
GetRegisteredMethods 获取所有已注册的方法名(用于调试)
func (*JSONRPC2) HandleMessage ¶
HandleMessage 处理 JSON-RPC 消息
func (*JSONRPC2) RegisterMethod ¶
RegisterMethod 注册 RPC 方法
func (*JSONRPC2) RegisterMethodFunc ¶
func (j *JSONRPC2) RegisterMethodFunc(name string, method func(params *fastjson.Value) (interface{}, error))
RegisterMethodFunc 注册 RPC 方法(函数适配器)
func (*JSONRPC2) RegisterObject ¶
RegisterObject 注册对象的所有公开方法(仅支持新签名)
func (*JSONRPC2) RegisterObjectMethods ¶
func (j *JSONRPC2) RegisterObjectMethods(obj interface{}, methodNames []string, prefix ...string) error
RegisterObjectMethods 注册对象的指定方法(仅支持新签名)
func (*JSONRPC2) RegisterTestService ¶
RegisterTestService 注册测试服务到 JSONRPC2 实例
type RPCError ¶
type RPCError struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
RPCError JSON-RPC 错误结构
func GetRPCError ¶
GetRPCError 获取 RPCError,如果不是则包装为 InternalError
func NewRPCError ¶
NewRPCError 创建新的 RPC 错误
type TestService ¶
type TestService struct {
// contains filtered or unexported fields
}
TestService 测试服务
func (*TestService) SlowOperation ¶
func (t *TestService) SlowOperation(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)
SlowOperation 模拟慢操作
Click to show internal directories.
Click to hide internal directories.