transport

package
v0.3.8 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StdTCPClient int = iota
	StdTCPServer
)
View Source
const (
	ReadBufferSize     = protocol.MuxMessageBlockSize
	MaxWriteBufferSize = 1024 * 1024
)

Variables

View Source
var (
	EngineManager = &engineManager{}
)

Functions

This section is empty.

Types

type ClientEngine

type ClientEngine interface {
	Start() error
	Stop() error
	NewConn(NetworkClientConfig) (ConnAdapter, error)
}

type ClientEngineBuilder

type ClientEngineBuilder interface {
	Client() ClientEngine
	EventDriveInter() EventDriveInter
}

func NewNBioTcpClientEngine

func NewNBioTcpClientEngine() ClientEngineBuilder

func NewNBioWebsocketClientEngine

func NewNBioWebsocketClientEngine() ClientEngineBuilder

func NewStdTcpClientEngine

func NewStdTcpClientEngine() ClientEngineBuilder

type ConnAdapter

type ConnAdapter interface {
	// Read Read/Write如果使用了Nio, 那么就不应该把
	// syscall.EAGAIN/syscall.EINTR 这种错误往上传递, 应该返回真正的错误
	Read(b []byte) (n int, err error)
	Write(b []byte) (n int, err error)
	// Close 不管因为何种原因导致了连接被关闭, ServerTransportBuilder设置的OnClose
	// 应该被调用, 从而让LittleRpc能够清理残余数据
	Close() error
	// Conn 其它的接口遵循net.Conn的定义
	net.Conn
}

ConnAdapter TODO 定义OnErr的定义 这个接口定义的实现应该是线程安全的, 可以安全地被多个goroutine共享 而且其指针不应该随便变动, 至少在OnClose()完成调用之前不可以变动

type EventDriveInter

type EventDriveInter interface {
	OnMessage(func(conn ConnAdapter, data []byte))
	OnOpen(func(conn ConnAdapter))
	OnClose(func(conn ConnAdapter, err error))
}

EventDriveInter 适用于Client&Server的事件驱动接口

type NBioTcpEngine

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

func (*NBioTcpEngine) Client

func (engine *NBioTcpEngine) Client() ClientEngine

func (*NBioTcpEngine) EventDriveInter

func (engine *NBioTcpEngine) EventDriveInter() EventDriveInter

func (*NBioTcpEngine) NewConn

func (engine *NBioTcpEngine) NewConn(config NetworkClientConfig) (ConnAdapter, error)

func (*NBioTcpEngine) OnClose

func (engine *NBioTcpEngine) OnClose(f func(conn ConnAdapter, err error))

func (*NBioTcpEngine) OnMessage

func (engine *NBioTcpEngine) OnMessage(f func(conn ConnAdapter, data []byte))

func (*NBioTcpEngine) OnOpen

func (engine *NBioTcpEngine) OnOpen(f func(conn ConnAdapter))

func (*NBioTcpEngine) Server

func (engine *NBioTcpEngine) Server() ServerEngine

func (*NBioTcpEngine) Start

func (engine *NBioTcpEngine) Start() error

func (*NBioTcpEngine) Stop

func (engine *NBioTcpEngine) Stop() error

type NBioWebSocketEngine

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

NBioWebSocketEngine 不设置错误处理回调函数则采用默认回调 默认函数中遇到错误就会panic,所以不期望panic的话一定要设置错误处理回调

func (*NBioWebSocketEngine) Client

func (engine *NBioWebSocketEngine) Client() ClientEngine

func (*NBioWebSocketEngine) EventDriveInter

func (engine *NBioWebSocketEngine) EventDriveInter() EventDriveInter

func (*NBioWebSocketEngine) NewConn

func (engine *NBioWebSocketEngine) NewConn(config NetworkClientConfig) (ConnAdapter, error)

func (*NBioWebSocketEngine) OnClose

func (engine *NBioWebSocketEngine) OnClose(f func(conn ConnAdapter, err error))

func (*NBioWebSocketEngine) OnMessage

func (engine *NBioWebSocketEngine) OnMessage(f func(conn ConnAdapter, data []byte))

func (*NBioWebSocketEngine) OnOpen

func (engine *NBioWebSocketEngine) OnOpen(f func(conn ConnAdapter))

func (*NBioWebSocketEngine) Server

func (engine *NBioWebSocketEngine) Server() ServerEngine

func (*NBioWebSocketEngine) Start

func (engine *NBioWebSocketEngine) Start() error

func (*NBioWebSocketEngine) Stop

func (engine *NBioWebSocketEngine) Stop() error

type NetworkClientConfig

type NetworkClientConfig struct {
	ServerAddr string
	KeepAlive  bool
	TLSPubPem  []byte
	TLSPriPem  []byte
	Dialer     *net.Dialer
}

type NetworkServerConfig

type NetworkServerConfig struct {
	Addrs     []string
	KeepAlive bool
	TLSPubPem []byte
}

type NewClientEngineBuilder

type NewClientEngineBuilder func() ClientEngineBuilder

type NewServerEngineBuilder

type NewServerEngineBuilder func(NetworkServerConfig) ServerEngineBuilder

type ServerEngine

type ServerEngine interface {
	Start() error
	Stop() error
}

type ServerEngineBuilder

type ServerEngineBuilder interface {
	Server() ServerEngine
	EventDriveInter() EventDriveInter
}

func NewNBioTcpServerEngine

func NewNBioTcpServerEngine(config NetworkServerConfig) ServerEngineBuilder

func NewNBioWebsocketServerEngine

func NewNBioWebsocketServerEngine(config NetworkServerConfig) ServerEngineBuilder

func NewStdTcpServerEngine

func NewStdTcpServerEngine(config NetworkServerConfig) ServerEngineBuilder

type StdNetTcpEngine

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

func (*StdNetTcpEngine) Client

func (s *StdNetTcpEngine) Client() ClientEngine

func (*StdNetTcpEngine) EventDriveInter

func (s *StdNetTcpEngine) EventDriveInter() EventDriveInter

func (*StdNetTcpEngine) NewConn

func (s *StdNetTcpEngine) NewConn(config NetworkClientConfig) (ConnAdapter, error)

func (*StdNetTcpEngine) OnClose

func (s *StdNetTcpEngine) OnClose(f func(conn ConnAdapter, err error))

func (*StdNetTcpEngine) OnMessage

func (s *StdNetTcpEngine) OnMessage(f func(conn ConnAdapter, data []byte))

func (*StdNetTcpEngine) OnOpen

func (s *StdNetTcpEngine) OnOpen(f func(conn ConnAdapter))

func (*StdNetTcpEngine) Server

func (s *StdNetTcpEngine) Server() ServerEngine

func (*StdNetTcpEngine) Start

func (s *StdNetTcpEngine) Start() error

func (*StdNetTcpEngine) Stop

func (s *StdNetTcpEngine) Stop() error

type WsConnAdapter

type WsConnAdapter struct {
	websocket.Conn
}

func (*WsConnAdapter) Write

func (w *WsConnAdapter) Write(b []byte) (n int, err error)

Jump to

Keyboard shortcuts

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