jsoncodec

package
v0.0.0-...-0a271de Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2025 License: AGPL-3.0 Imports: 11 Imported by: 34

Documentation

Overview

Package jsoncodec provides a JSON codec for the rpc package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DumpRequest

func DumpRequest(hdr *rpc.Header, body interface{}) []byte

DumpRequest returns JSON-formatted data representing the RPC message with the given header and body, as it would be written by Codec.WriteMessage. If the body cannot be marshalled as JSON, the data will hold a JSON string describing the error.

Types

type Codec

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

Codec implements rpc.Codec for a connection.

func New

func New(conn JSONConn) *Codec

New returns an rpc codec that uses conn to send and receive messages.

func NewNet

func NewNet(conn io.ReadWriteCloser) *Codec

NewNet returns an rpc codec that uses the given connection to send and receive messages.

func NewWebsocket

func NewWebsocket(conn *websocket.Conn) *Codec

NewWebsocket returns an rpc codec that uses the given websocket connection to send and receive messages.

func (*Codec) Close

func (c *Codec) Close() error

Close closes the underlying connection and sets the codec to closing mode, so that any further errors are ignored.

func (*Codec) ReadBody

func (c *Codec) ReadBody(body interface{}, isRequest bool) error

ReadBody reads the body from the connection.

func (*Codec) ReadHeader

func (c *Codec) ReadHeader(hdr *rpc.Header) error

ReadHeader reads the header from the connection.

func (*Codec) WriteMessage

func (c *Codec) WriteMessage(hdr *rpc.Header, body interface{}) error

WriteMessage writes a message with the given header and body.

type JSONConn

type JSONConn interface {
	// Send sends a message.
	Send(msg interface{}) error
	// Receive receives a message into msg.
	Receive(msg interface{}) error
	// Close closes the connection.
	Close() error
}

JSONConn sends and receives messages to an underlying connection in JSON format.

func NetJSONConn

func NetJSONConn(conn io.ReadWriteCloser) JSONConn

func NewWebsocketConn

func NewWebsocketConn(conn *websocket.Conn) JSONConn

NewWebsocketConn returns a JSONConn implementation that uses the given connection for transport.

Jump to

Keyboard shortcuts

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