Documentation ¶
Overview ¶
Package rpc provides JSON RPC server for IPC. HTTP and WS protocols.
Index ¶
- Constants
- func NewEndpointResponseWriter() *endpointResponseWriter
- func NewHTTPJSONServer(logger log.Logger, port int, addr string, invoker Invoker) *httpJSONRPCServer
- func NewWSJSONRPCServer(logger log.Logger, port int, addr string, invoker Invoker) *wsJSONRPCServer
- func NewWSJSONRPCServerWithHTTPServer(logger log.Logger, invoker Invoker, mux *http.ServeMux, ...) *wsJSONRPCServer
- type EndpointResponse
- type EndpointResponseWriter
- type EventContent
- type Invoker
- type JSONRPCErrorResponse
- type JSONRPCRequest
- type JSONRPCResponse
- type RPCServer
Constants ¶
View Source
const ( RPCTypeHTTP = "http" RPCTypeWS = "ws" RPCIPC = "ipc" )
Variables ¶
This section is empty.
Functions ¶
func NewEndpointResponseWriter ¶
func NewEndpointResponseWriter() *endpointResponseWriter
func NewHTTPJSONServer ¶
func NewWSJSONRPCServer ¶
Types ¶
type EndpointResponse ¶
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 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 (*RPCServer) ListenAndServe ¶
Click to show internal directories.
Click to hide internal directories.