@@ -14,8 +14,8 @@ import (
1414 "github.com/lxzan/gws/internal"
1515)
1616
17- // FlateTail Add four bytes as specified in RFC
18- // Add final block to squelch unexpected EOF error from flate reader.
17+ // deflate压缩算法的尾部标记
18+ // The tail marker of the deflate compression algorithm
1919var flateTail = []byte {0x00 , 0x00 , 0xff , 0xff , 0x01 , 0x00 , 0x00 , 0xff , 0xff }
2020
2121type deflaterPool struct {
@@ -24,6 +24,8 @@ type deflaterPool struct {
2424 pool []* deflater
2525}
2626
27+ // 初始化deflaterPool
28+ // Initialize the deflaterPool
2729func (c * deflaterPool ) initialize (options PermessageDeflate , limit int ) * deflaterPool {
2830 c .num = uint64 (options .PoolSize )
2931 for i := uint64 (0 ); i < c .num ; i ++ {
@@ -32,6 +34,8 @@ func (c *deflaterPool) initialize(options PermessageDeflate, limit int) *deflate
3234 return c
3335}
3436
37+ // Select 从deflaterPool中选择一个deflater对象
38+ // Select a deflater object from the deflaterPool
3539func (c * deflaterPool ) Select () * deflater {
3640 var j = atomic .AddUint64 (& c .serial , 1 ) & (c .num - 1 )
3741 return c .pool [j ]
@@ -47,6 +51,8 @@ type deflater struct {
4751 cpsWriter * flate.Writer
4852}
4953
54+ // 初始化deflater
55+ // Initialize the deflater
5056func (c * deflater ) initialize (isServer bool , options PermessageDeflate , limit int ) * deflater {
5157 c .dpsReader = flate .NewReader (nil )
5258 c .dpsBuffer = bytes .NewBuffer (nil )
@@ -61,16 +67,19 @@ func (c *deflater) initialize(isServer bool, options PermessageDeflate, limit in
6167 return c
6268}
6369
70+ // 重置deflate reader
71+ // Reset the deflate reader
6472func (c * deflater ) resetFR (r io.Reader , dict []byte ) {
6573 resetter := c .dpsReader .(flate.Resetter )
6674 _ = resetter .Reset (r , dict ) // must return a null pointer
67- if c .dpsBuffer .Cap () > 256 * 1024 {
75+ if c .dpsBuffer .Cap () > int ( bufferThreshold ) {
6876 c .dpsBuffer = bytes .NewBuffer (nil )
6977 }
7078 c .dpsBuffer .Reset ()
7179}
7280
7381// Decompress 解压
82+ // Decompress data
7483func (c * deflater ) Decompress (src * bytes.Buffer , dict []byte ) (* bytes.Buffer , error ) {
7584 c .dpsLocker .Lock ()
7685 defer c .dpsLocker .Unlock ()
@@ -87,6 +96,7 @@ func (c *deflater) Decompress(src *bytes.Buffer, dict []byte) (*bytes.Buffer, er
8796}
8897
8998// Compress 压缩
99+ // Compress data
90100func (c * deflater ) Compress (src internal.Payload , dst * bytes.Buffer , dict []byte ) error {
91101 c .cpsLocker .Lock ()
92102 defer c .cpsLocker .Unlock ()
@@ -107,12 +117,16 @@ func (c *deflater) Compress(src internal.Payload, dst *bytes.Buffer, dict []byte
107117 return nil
108118}
109119
120+ // 滑动窗口
121+ // Sliding window
110122type slideWindow struct {
111123 enabled bool
112124 dict []byte
113125 size int
114126}
115127
128+ // 初始化滑动窗口
129+ // Initialize the sliding window
116130func (c * slideWindow ) initialize (pool * internal.Pool [[]byte ], windowBits int ) * slideWindow {
117131 c .enabled = true
118132 c .size = internal .BinaryPow (windowBits )
@@ -124,6 +138,8 @@ func (c *slideWindow) initialize(pool *internal.Pool[[]byte], windowBits int) *s
124138 return c
125139}
126140
141+ // Write 将数据写入滑动窗口
142+ // Write data to the sliding window
127143func (c * slideWindow ) Write (p []byte ) (int , error ) {
128144 if ! c .enabled {
129145 return 0 , nil
@@ -153,6 +169,8 @@ func (c *slideWindow) Write(p []byte) (int, error) {
153169 return total , nil
154170}
155171
172+ // 生成请求头
173+ // Generate request headers
156174func (c * PermessageDeflate ) genRequestHeader () string {
157175 var options = make ([]string , 0 , 5 )
158176 options = append (options , internal .PermessageDeflate )
@@ -173,6 +191,8 @@ func (c *PermessageDeflate) genRequestHeader() string {
173191 return strings .Join (options , "; " )
174192}
175193
194+ // 生成响应头
195+ // Generate response headers
176196func (c * PermessageDeflate ) genResponseHeader () string {
177197 var options = make ([]string , 0 , 5 )
178198 options = append (options , internal .PermessageDeflate )
@@ -191,7 +211,8 @@ func (c *PermessageDeflate) genResponseHeader() string {
191211 return strings .Join (options , "; " )
192212}
193213
194- // 压缩拓展握手协商
214+ // 压缩拓展协商
215+ // Negotiation of compression parameters
195216func permessageNegotiation (str string ) PermessageDeflate {
196217 var options = PermessageDeflate {
197218 ServerContextTakeover : true ,
@@ -229,7 +250,9 @@ func permessageNegotiation(str string) PermessageDeflate {
229250 return options
230251}
231252
232- func limitReader (r io.Reader , limit int ) io.Reader { return & limitedReader {R : r , M : limit } }
253+ // 限制从io.Reader中最多读取m个字节
254+ // Limit reading up to m bytes from io.Reader
255+ func limitReader (r io.Reader , m int ) io.Reader { return & limitedReader {R : r , M : m } }
233256
234257type limitedReader struct {
235258 R io.Reader
0 commit comments