Documentation
¶
Overview ¶
Package transport 定义传输层接口
Index ¶
- Variables
- type Config
- type GRPCTransport
- func (t *GRPCTransport) Close() error
- func (t *GRPCTransport) Connect(ctx context.Context) error
- func (t *GRPCTransport) IsHealthy() bool
- func (t *GRPCTransport) Receive(ctx context.Context) (*message.Envelope, error)
- func (t *GRPCTransport) Send(ctx context.Context, envelope *message.Envelope) error
- func (t *GRPCTransport) State() State
- type HTTPTransport
- func (t *HTTPTransport) Close() error
- func (t *HTTPTransport) Connect(ctx context.Context) error
- func (t *HTTPTransport) IsHealthy() bool
- func (t *HTTPTransport) Receive(ctx context.Context) (*message.Envelope, error)
- func (t *HTTPTransport) Send(ctx context.Context, envelope *message.Envelope) error
- func (t *HTTPTransport) State() State
- type Manager
- func (m *Manager) ActiveTransport() TransportType
- func (m *Manager) Receive(ctx context.Context) (*message.Envelope, error)
- func (m *Manager) ReceiveChan() <-chan *message.Envelope
- func (m *Manager) Send(ctx context.Context, envelope *message.Envelope) error
- func (m *Manager) Start(ctx context.Context) error
- func (m *Manager) Stop() error
- type ManagerConfig
- type State
- type Transport
- type TransportType
- type WebSocketTransport
- func (t *WebSocketTransport) Close() error
- func (t *WebSocketTransport) Connect(ctx context.Context) error
- func (t *WebSocketTransport) IsHealthy() bool
- func (t *WebSocketTransport) Receive(ctx context.Context) (*message.Envelope, error)
- func (t *WebSocketTransport) Send(ctx context.Context, envelope *message.Envelope) error
- func (t *WebSocketTransport) State() State
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrConnectionClosed = errors.New("connection closed") ErrNotConnected = errors.New("not connected") ErrInvalidMessage = errors.New("invalid message") ErrSendFailed = errors.New("send failed") )
错误定义
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Address string
ConnectTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
HeartbeatInterval time.Duration
BufferSize int
CompressionEnabled bool
CompressionThreshold int
}
Config 传输配置
type GRPCTransport ¶
type GRPCTransport struct {
// contains filtered or unexported fields
}
GRPCTransport gRPC 传输实现
func NewGRPCTransport ¶
func NewGRPCTransport(config *Config) *GRPCTransport
NewGRPCTransport 创建 gRPC 传输
func (*GRPCTransport) Connect ¶
func (t *GRPCTransport) Connect(ctx context.Context) error
Connect 建立连接
type HTTPTransport ¶
type HTTPTransport struct {
// contains filtered or unexported fields
}
HTTPTransport HTTP 降级传输实现
func NewHTTPTransport ¶
func NewHTTPTransport(config *Config) *HTTPTransport
NewHTTPTransport 创建 HTTP 传输
func (*HTTPTransport) Connect ¶
func (t *HTTPTransport) Connect(ctx context.Context) error
Connect 建立 HTTP 连接(验证服务器可达性)
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 连接管理器
func (*Manager) ActiveTransport ¶
func (m *Manager) ActiveTransport() TransportType
ActiveTransport 获取当前活跃传输类型
func (*Manager) ReceiveChan ¶
ReceiveChan 获取接收 channel
type ManagerConfig ¶
type ManagerConfig struct {
WSAddress string // WebSocket 地址
GRPCAddress string // gRPC 地址
HTTPAddress string // HTTP 地址
MaxRetries int // 最大重试次数
RetryDelay time.Duration // 重试延迟
HealthCheckInterval time.Duration // 健康检查间隔
FailoverThreshold int // 触发故障转移的连续失败次数
}
ManagerConfig 连接管理器配置
type Transport ¶
type Transport interface {
Connect(ctx context.Context) error
Close() error
Send(ctx context.Context, envelope *message.Envelope) error
Receive(ctx context.Context) (*message.Envelope, error)
State() State
IsHealthy() bool
}
Transport 传输层接口
type TransportType ¶
type TransportType uint8
TransportType 传输类型
const ( TransportAuto TransportType = iota TransportWebSocket TransportGRPC TransportHTTP )
type WebSocketTransport ¶
type WebSocketTransport struct {
// contains filtered or unexported fields
}
WebSocketTransport WebSocket 传输实现
func NewWebSocketTransport ¶
func NewWebSocketTransport(config *Config) *WebSocketTransport
NewWebSocketTransport 创建 WebSocket 传输
func (*WebSocketTransport) Connect ¶
func (t *WebSocketTransport) Connect(ctx context.Context) error
Connect 建立连接
Click to show internal directories.
Click to hide internal directories.