Documentation
¶
Overview ¶
Package jsonrpc 实现简单的 JSON RPC 2.0
Index ¶
- Constants
- Variables
- type Conn
- func (conn *Conn) Notify(t Transport, method string, in interface{}) error
- func (conn *Conn) Register(method string, f interface{}) bool
- func (conn *Conn) Send(t Transport, method string, in, out interface{}) error
- func (conn *Conn) Serve(ctx context.Context, t Transport) error
- func (conn *Conn) ServeHTTP(w http.ResponseWriter, r *http.Request)
- type Error
- type HTTPClient
- type Transport
Constants ¶
View Source
const ( CodeParseError = -32700 CodeInvalidRequest = -32600 CodeMethodNotFound = -32601 CodeInvalidParams = -32602 CodeInternalError = -32603 CodeServerErrorStart = -32099 CodeServerErrorEnd = -32000 CodeServerNotInitialized = -32002 CodeUnknownErrorCode = -32001 )
JSON RPC 2.0 定义的错误代码
View Source
const Version = "2.0"
Version JSON RPC 的版本
Variables ¶
View Source
var ( ErrInvalidContentType = errors.New("无效的报头 Content-Type") ErrMissContentLength = errors.New("缺少 Content-Length 报头") )
一些错误定义
Functions ¶
This section is empty.
Types ¶
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn 连接对象,json-rpc 客户端和服务端是对等的,两者都使用 conn 初始化。
func (*Conn) Register ¶
Register 注册一个新的服务
f 为处理服务的函数,其原始为以下方式:
func(notify bool, params, result pointer) error
其中 notify 表示是否为通知类型的请求;params 为用户请求的对象; result 为返回给用户的数据对象;error 则为处理出错是的返回值。 params 和 result 必须为指针类型。
返回值表示是否添加成功,在已经存在相同值时,会添加失败。
type Error ¶
type Error struct { // 错误代码 Code int `json:"code"` // 错误的简短描述 Message string `json:"message"` // 详细的错误描述信息,可以为空 Data interface{} `json:"data,omitempty"` }
Error JSON-RPC 返回的错误类型
func NewErrorWithData ¶
NewErrorWithData 新的 Error 对象
type HTTPClient ¶
type HTTPClient struct {
// contains filtered or unexported fields
}
HTTPClient http 的客户端
func (*HTTPClient) Notify ¶
func (client *HTTPClient) Notify(method string, params interface{}) error
Notify 请求 JSON RPC 服务端
func (*HTTPClient) Request ¶
func (client *HTTPClient) Request(method string, params, result interface{}) error
Request 请求 JSON RPC 服务端
type Transport ¶
type Transport interface { // 从转输层读取内容并转换成对象 v Read(v interface{}) error // 将对象 v 写入传输层 Write(v interface{}) error }
Transport 用于操作 JSON RPC 的传输层接口
func NewHTTPTransport ¶
func NewHTTPTransport(w http.ResponseWriter, r *http.Request) Transport
NewHTTPTransport 声明基于 HTTP 的 Transport 实例
https://www.simple-is-better.org/json-rpc/transport_http.html
func NewWebsocketTransport ¶
NewWebsocketTransport 声明基于 websocket 的 Transport 实例
Click to show internal directories.
Click to hide internal directories.