Help us shape the future of Go! Take the 2026 Go Developer Survey

jsonrpc

package
v0.8.6 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrParse          = Error{/* contains filtered or unexported fields */}
	ErrInvalidRequest = Error{/* contains filtered or unexported fields */}
	ErrMethodNotFound = Error{/* contains filtered or unexported fields */}
	ErrInvalidParams  = Error{/* contains filtered or unexported fields */}
	ErrInternal       = Error{/* contains filtered or unexported fields */}
	ErrServer         = Error{/* contains filtered or unexported fields */}
)

Functions

func BuildErrResp

func BuildErrResp(id string, e Error) []byte

func ServeWithReconnect

func ServeWithReconnect(ctx context.Context, cli TransportWithConnect, caller Caller, o ...Option)

Types

type Caller

type Caller interface {
	Call(Request) (interface{}, error)
}

Caller interface this method invokes on request and encode response as jsonrpc response

type Error

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

func (Error) AddData

func (e Error) AddData(key string, value interface{}) Error

func (Error) Error

func (e Error) Error() string

func (Error) SetCode

func (e Error) SetCode(c int) Error

SetCode works only for ErrServer (code should be between -32099 and -32000)

func (Error) SetData

func (e Error) SetData(data map[string]interface{}) Error

type NextReader

type NextReader interface {
	NextReader() (io.Reader, error)
}

type NextWriter

type NextWriter interface {
	NextWriter() (io.WriteCloser, error)
}

type NotificationService added in v0.2.0

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

func (NotificationService) ID added in v0.2.0

func (n NotificationService) ID() string

func (NotificationService) Send added in v0.2.0

func (n NotificationService) Send(value interface{})

Send message (as jsonrpc notification call) to core

type Option added in v0.8.0

type Option func(*Service)

func CatchPanic added in v0.8.0

func CatchPanic(v bool) Option

type RPC added in v0.2.0

type RPC interface {
	NewNotification(params objx.Map) NotificationService
}

type Request

type Request struct {
	JSONRPC string              `json:"jsonrpc"`
	Method  string              `json:"method"`
	ID      jsoniter.RawMessage `json:"id,omitempty"`
	Params  objx.Map            `json:"params"`
}

type Service

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

func New

func New(tr Transport, c Caller, o ...Option) Service

func (Service) NewNotification added in v0.2.0

func (s Service) NewNotification(params objx.Map) NotificationService

func (Service) Serve

func (s Service) Serve(ctx context.Context) error

type Transport

type Transport interface {
	NextWriter
	NextReader
}

type TransportWithConnect

type TransportWithConnect interface {
	Transport
	Connect() error
}

Jump to

Keyboard shortcuts

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