transport

package
v0.4.5 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2023 License: MIT Imports: 17 Imported by: 1

Documentation

Index

Constants

View Source
const (
	StdTCPClient int = iota
	StdTCPServer
)
View Source
const (
	ReadBufferSize     = mux.MaxBlockSize
	MaxWriteBufferSize = 1024 * 1024
)

Variables

View Source
var (
	Manager = &manager{}
)

Functions

This section is empty.

Types

type ClientBuilder

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

func NewNBioTcpClient

func NewNBioTcpClient() ClientBuilder

func NewNBioWebsocketClient

func NewNBioWebsocketClient() ClientBuilder

func NewStdTcpClient

func NewStdTcpClient() ClientBuilder

type ClientEngine

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

type ConnAdapter

type ConnAdapter interface {
	// Close 不管因为何种原因导致了连接被关闭, ServerTransportBuilder设置的OnClose
	// 应该被调用, 从而让LittleRpc能够清理残余数据
	Close() error
	// Conn 其它的接口遵循net.Conn的定义
	net.Conn
}

ConnAdapter 这个接口定义的实现应该是线程安全的, 可以安全地被多个goroutine共享 而且其指针不应该随便变动, 至少在OnClose()完成调用之前不可以变动 接口中的方法应该是Sync style, 即方法执行完成后所有任务均已完成, 比如Read()为非 阻塞接口的话则不满足要求, 需要实现传输层的框架提供一个Sync style的封装, 否则则会串包

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 NewClientBuilder

type NewClientBuilder func() ClientBuilder

type NewServerBuilder

type NewServerBuilder func(NetworkServerConfig) ServerBuilder

type NilConn

type NilConn struct{}

NilConn 提供一个空连接的实现方便测试

func (NilConn) Close

func (nc NilConn) Close() error

func (NilConn) LocalAddr

func (nc NilConn) LocalAddr() net.Addr

func (NilConn) Read

func (nc NilConn) Read(b []byte) (n int, err error)

func (NilConn) RemoteAddr

func (nc NilConn) RemoteAddr() net.Addr

func (NilConn) SetDeadline

func (nc NilConn) SetDeadline(t time.Time) error

func (NilConn) SetReadDeadline

func (nc NilConn) SetReadDeadline(t time.Time) error

func (NilConn) SetWriteDeadline

func (nc NilConn) SetWriteDeadline(t time.Time) error

func (NilConn) Write

func (nc NilConn) Write(b []byte) (n int, err error)

type ServerBuilder

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

func NewNBioTcpServer

func NewNBioTcpServer(config NetworkServerConfig) ServerBuilder

func NewNBioWebsocketServer

func NewNBioWebsocketServer(config NetworkServerConfig) ServerBuilder

func NewStdTcpServer

func NewStdTcpServer(config NetworkServerConfig) ServerBuilder

type ServerEngine

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

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