jsonrpc

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2019 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_JSONRPC_ID = 0x7FFFFFFF
	VERSION        = "2.0"
)
View Source
const (
	// Errors defined in the JSON-RPC spec. See
	// http://www.jsonrpc.org/specification#error_object.
	CodeParseError     = -32700
	CodeInvalidRequest = -32600
	CodeMethodNotFound = -32601
	CodeInvalidParams  = -32602
	CodeInternalError  = -32603
)
View Source
const (
	DefaultMaxSleepTime      = 1 * time.Second // accept中间最大sleep interval
	DefaultHTTPRspBufferSize = 1024
	PathPrefix               = byte('/')
)
View Source
const JSONRPC = "jsonrpc"

Variables

View Source
var (
	Version = "2.0"
)

Functions

func GetProtocol

func GetProtocol() protocol.Protocol

Types

type CodecData

type CodecData struct {
	ID     int64
	Method string
	Args   interface{}
	Error  string
}

type Error

type Error struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

rsponse Error

func NewError

func NewError(code int, message string) *Error

func (*Error) Error

func (e *Error) Error() string

type HTTPClient

type HTTPClient struct {
	ID int64
	// contains filtered or unexported fields
}

func NewHTTPClient

func NewHTTPClient(opt *HTTPOptions) *HTTPClient

func (*HTTPClient) Call

func (c *HTTPClient) Call(ctx context.Context, service common.URL, req *Request, rsp interface{}) error

func (*HTTPClient) Do

func (c *HTTPClient) Do(addr, path string, httpHeader http.Header, body []byte) ([]byte, error)

!!The high level of complexity and the likelihood that the fasthttp client has not been extensively used in production means that you would need to expect a very large benefit to justify the adoption of fasthttp today.

func (*HTTPClient) NewRequest

func (c *HTTPClient) NewRequest(service common.URL, method string, args interface{}) *Request

type HTTPOptions

type HTTPOptions struct {
	HandshakeTimeout time.Duration
	HTTPTimeout      time.Duration
}

type JsonrpcExporter

type JsonrpcExporter struct {
	protocol.BaseExporter
}

func NewJsonrpcExporter

func NewJsonrpcExporter(key string, invoker protocol.Invoker, exporterMap *sync.Map) *JsonrpcExporter

func (*JsonrpcExporter) Unexport

func (je *JsonrpcExporter) Unexport()

type JsonrpcInvoker

type JsonrpcInvoker struct {
	protocol.BaseInvoker
	// contains filtered or unexported fields
}

func NewJsonrpcInvoker

func NewJsonrpcInvoker(url common.URL, client *HTTPClient) *JsonrpcInvoker

func (*JsonrpcInvoker) Invoke

func (ji *JsonrpcInvoker) Invoke(invocation protocol.Invocation) protocol.Result

type JsonrpcProtocol

type JsonrpcProtocol struct {
	protocol.BaseProtocol
	// contains filtered or unexported fields
}

func NewJsonrpcProtocol

func NewJsonrpcProtocol() *JsonrpcProtocol

func (*JsonrpcProtocol) Destroy

func (jp *JsonrpcProtocol) Destroy()

func (*JsonrpcProtocol) Export

func (jp *JsonrpcProtocol) Export(invoker protocol.Invoker) protocol.Exporter

func (*JsonrpcProtocol) Refer

func (jp *JsonrpcProtocol) Refer(url common.URL) protocol.Invoker

type Request

type Request struct {
	ID int64
	// contains filtered or unexported fields
}

type Server

type Server struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewServer

func NewServer() *Server

func (*Server) Start

func (s *Server) Start(url common.URL)

func (*Server) Stop

func (s *Server) Stop()

type ServerCodec

type ServerCodec struct {
	// contains filtered or unexported fields
}

func (*ServerCodec) ReadBody

func (c *ServerCodec) ReadBody(x interface{}) error

func (*ServerCodec) ReadHeader

func (c *ServerCodec) ReadHeader(header map[string]string, body []byte) error

func (*ServerCodec) Write

func (c *ServerCodec) Write(errMsg string, x interface{}) ([]byte, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL