rpc

package
v0.0.0-...-77dcbbd Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package rpc provides JSON RPC server for IPC. HTTP and WS protocols.

Index

Constants

View Source
const (
	RPCTypeHTTP = "http"
	RPCTypeWS   = "ws"
	RPCIPC      = "ipc"
)

Variables

This section is empty.

Functions

func NewEndpointResponseWriter

func NewEndpointResponseWriter() *endpointResponseWriter

func NewHTTPJSONServer

func NewHTTPJSONServer(logger log.Logger, port int, addr string, invoker Invoker) *httpJSONRPCServer

func NewWSJSONRPCServer

func NewWSJSONRPCServer(logger log.Logger, port int, addr string, invoker Invoker) *wsJSONRPCServer

func NewWSJSONRPCServerWithHTTPServer

func NewWSJSONRPCServerWithHTTPServer(logger log.Logger, invoker Invoker, mux *http.ServeMux, httpServer *http.Server) *wsJSONRPCServer

Types

type EndpointResponse

type EndpointResponse interface {
	Err() error
	Data() interface{}
	JSONData() ([]byte, error)
}

func NewEndpointResponse

func NewEndpointResponse(data interface{}, err error) EndpointResponse

type EndpointResponseWriter

type EndpointResponseWriter interface {
	Write(interface{})
	Error(error)
}

type EventContent

type EventContent interface {
	Event() string
	Data() codec.EncodeDecodable
	JSONData() ([]byte, error)
	CodecData() []byte
}

func NewEventContent

func NewEventContent(event string, data codec.EncodeDecodable) EventContent

type Invoker

type Invoker interface {
	Invoke(ctx context.Context, endpoint string, data []byte) EndpointResponse
}

type JSONRPCErrorResponse

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

type JSONRPCRequest

type JSONRPCRequest struct {
	JSONRPC string          `json:"jsonrpc"`
	Method  string          `json:"method"`
	ID      int             `json:"id,string"`
	Params  json.RawMessage `json:"params"`
}

func (*JSONRPCRequest) Validate

func (r *JSONRPCRequest) Validate() error

type JSONRPCResponse

type JSONRPCResponse struct {
	JSONRPC string                `json:"jsonrpc"`
	ID      int                   `json:"id"`
	Result  json.RawMessage       `json:"result,omitempty"`
	Error   *JSONRPCErrorResponse `json:"error,omitempty"`
}

type RPCServer

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

func NewRPCServer

func NewRPCServer(logger log.Logger, enabled []string, invoker Invoker, port int, address, path string) *RPCServer

func (*RPCServer) Close

func (s *RPCServer) Close() error

func (*RPCServer) ListenAndServe

func (s *RPCServer) ListenAndServe() error

func (*RPCServer) Publish

func (s *RPCServer) Publish(method string, data []byte)

Jump to

Keyboard shortcuts

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