grpc

package
v0.0.0-...-1a2806f Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConn

func NewConn(stream IRPCStream, rwQueueSize int, maxMessageSize uint32) network.IConn

NewConn create websocket conn

func NewServer

func NewServer(conf config.IConfig, agentFunc network.AgentCreateFunc, agentCloseFunc network.AgentCloseFunc) network.IServer

NewServer create grpc server

Types

type Client

type Client struct {
	sync.Mutex
	Conf       *ClientConfig
	NewAgent   network.AgentCreateFunc
	CloseAgent network.AgentCloseFunc
	// contains filtered or unexported fields
}

Client grpc client

func NewClient

func NewClient(conf config.IConfig, agentFunc network.AgentCreateFunc, agentCloseFunc network.AgentCloseFunc) *Client

NewClient create grpc client

func (*Client) Call

func (c *Client) Call(serverID int, name string, address string) *ss.Message

Call sync get response

func (*Client) Close

func (c *Client) Close()

Close client connections

func (*Client) Run

func (c *Client) Run()

Run client start run

type ClientConfig

type ClientConfig struct {
	Nodes            []common.NodeInfo `mapstructure:"nodes"`
	ConnNum          int               `mapstructure:"conn_num"`
	ConnectInterval  time.Duration     `mapstructure:"connect_interval"`
	SocketQueueSize  int               `mapstructure:"socket_queue_size"`
	MaxMessageSize   uint32            `mapstructure:"max_message_size"`
	HandshakeTimeout time.Duration     `mapstructure:"handshake_timeout"`
	AutoReconnect    bool              `mapstructure:"auto_reconnect"`
	QueueSize        int               `mapstructure:"queue_size"`
}

ClientConfig grpc client config

func (*ClientConfig) GetQueueSize

func (c *ClientConfig) GetQueueSize() int

GetQueueSize get module queue size

type Conn

type Conn struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Conn grpc conn define

func (*Conn) Close

func (c *Conn) Close()

Close grpc conn close

func (*Conn) Destroy

func (c *Conn) Destroy()

Destroy grpc conn destory

func (*Conn) LocalAddr

func (c *Conn) LocalAddr() net.Addr

LocalAddr get local addr

func (*Conn) ReadMessage

func (c *Conn) ReadMessage() (interface{}, error)

ReadMessage goroutine not safe

func (*Conn) RemoteAddr

func (c *Conn) RemoteAddr() net.Addr

RemoteAddr get remote addr

func (*Conn) WriteMessage

func (c *Conn) WriteMessage(args ...interface{}) error

WriteMessage args must not be modified by the others goroutines

type ConnSet

type ConnSet map[IRPCStream]struct{}

ConnSet grpc conn set

type IRPCStream

type IRPCStream interface {
	Send(*ss.Message) error
	Recv() (*ss.Message, error)
	// Context returns the context for this stream.
	Context() context.Context
}

IRPCStream define rpc stream interface

type Server

type Server struct {
	ss.UnimplementedRPCServer
	Conf       *ServerConfig
	NewAgent   network.AgentCreateFunc
	CloseAgent network.AgentCloseFunc
	// contains filtered or unexported fields
}

Server grpc server define

func (*Server) Call

func (s *Server) Call(ctx context.Context, in *ss.Message) (*ss.Message, error)

Call implements call function

func (*Server) Close

func (s *Server) Close()

Close grpc server

func (*Server) ListenAndServe

func (s *Server) ListenAndServe()

ListenAndServe start serve

func (*Server) Transport

func (s *Server) Transport(stream ss.RPC_TransportServer) error

Transport grpc connection

type ServerConfig

type ServerConfig struct {
	Address         string `mapstructure:"address"`
	MaxConnNum      int    `mapstructure:"max_conn_num"`
	SocketQueueSize int    `mapstructure:"socket_queue_size"`
	MaxMessageSize  uint32 `mapstructure:"max_message_size"`
	QueueSize       int    `mapstructure:"queue_size"`
}

ServerConfig grpc server config

func (*ServerConfig) GetQueueSize

func (s *ServerConfig) GetQueueSize() int

GetQueueSize get module queue size

Jump to

Keyboard shortcuts

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