Documentation
¶
Index ¶
Constants ¶
View Source
const DefaultWindowSize = 65536 // 64 KB
DefaultWindowSize 是每条流的初始发送窗口大小。
View Source
const FrameHeaderSize = 8
FrameHeaderSize 是帧头部的固定字节数。
Variables ¶
View Source
var ( // ErrFrameTooShort 是帧数据不足 FrameHeaderSize 时的错误。 ErrFrameTooShort = errors.New("mux: frame too short") // ErrFrameTruncated 是帧负载长度少于声明值时的错误。 ErrFrameTruncated = errors.New("mux: frame payload truncated") )
View Source
var ( ErrStreamRejected = errors.New("mux: stream rejected") ErrMaxStreams = errors.New("mux: max streams reached") )
Sentinel errors.
Functions ¶
func DecodeFrame ¶
DecodeFrame 解码一个完整帧。
Types ¶
type FrameType ¶
type FrameType byte
FrameType 标识帧的用途。
const ( FrameData FrameType = 0x00 // 用户流数据 FrameOpen FrameType = 0x01 // 通知远端打开新流 FrameClose FrameType = 0x02 // 关闭指定流 FramePing FrameType = 0x03 // 心跳探测 FramePong FrameType = 0x04 // 心跳回复 FrameCloseWrite FrameType = 0x05 // 写半关闭(不再有更多数据发送) FrameReject FrameType = 0x06 // 拒绝流创建(acceptCh 满或达到 maxStreams) FrameWindowUpdate FrameType = 0x07 // 窗口更新(流控) )
type Metrics ¶
type Metrics struct {
Streams StreamMetrics
PingsSent atomic.Int64
PongsReceived atomic.Int64
FramesReceived atomic.Int64
FramesSent atomic.Int64
Errors atomic.Int64
StreamsRejected atomic.Int64 // 因 acceptCh 满或 maxStreams 限制被拒绝的流数
RecvRetries atomic.Int64 // 读取循环重试次数
StreamsRejectedAccCh atomic.Int64 // 因 acceptCh 满被拒绝的流数
StreamsRejectedMaxStr atomic.Int64 // 因 maxStreams 被拒绝的流数
}
Metrics 收集 mux 级别的统计信息。
type Mux ¶
type Mux struct {
// contains filtered or unexported fields
}
Mux 在一条 xfer.Conn 上多路复用多条虚拟流。
func NewWithOpts ¶
NewWithOpts 创建 Mux 并应用选项。
type Option ¶
type Option func(*Mux)
Option 配置 Mux 的函数选项。
func WithAcceptChSize ¶
WithAcceptChSize 设置 acceptCh 缓冲区大小,默认 64。
Click to show internal directories.
Click to hide internal directories.