Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
guonaihong committed Aug 18, 2023
1 parent 563e8ab commit c530175
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 7 deletions.
6 changes: 3 additions & 3 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ type Config struct {
disableBufioClearHack bool // 关闭bufio的clear hack优化
utf8Check func([]byte) bool // utf8检查
readTimeout time.Duration
windowsMultipleTimesPayloadSize float32 // 设置几倍的payload大小
bufioMultipleTimesPayloadSize float32 // 设置几倍的payload大小
windowsMultipleTimesPayloadSize float32 // 设置几倍(1024+14)的payload大小
bufioMultipleTimesPayloadSize float32 // 设置几倍(1024)的payload大小
parseMode parseMode // 解析模式
maxDelayWriteNum int32 // 最大延迟包的个数, 默认值为10
delayWriteInitBufferSize int32 // 延迟写入的初始缓冲区大小, 默认值是8k
maxDelayWriteDuration time.Duration // 最大延迟时间, 默认值是10ms
}

func (c *Config) initPayloadSize() int {
return int(1024.0 + float32(enum.MaxFrameHeaderSize)*c.windowsMultipleTimesPayloadSize)
return int((1024.0 + float32(enum.MaxFrameHeaderSize)) * c.windowsMultipleTimesPayloadSize)
}

// 默认设置
Expand Down
15 changes: 15 additions & 0 deletions config_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package quickws

import "testing"

func Test_InitPayloadSize(t *testing.T) {
t.Run("InitPayload", func(t *testing.T) {
var c Config
for i := 1; i < 32; i++ {
c.windowsMultipleTimesPayloadSize = float32(i)
if c.initPayloadSize() != i*(1024+14) {
t.Errorf("initPayloadSize() = %d, want %d", c.initPayloadSize(), i*(1024+14))
}
}
})
}
4 changes: 2 additions & 2 deletions conn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ func TestFragmentFrame(t *testing.T) {
t.Run("FragmentFrame-Compression", func(t *testing.T) {
run := int32(0)
data := make(chan string, 1)
upgrade := NewUpgrade(WithServerBufioParseMode(), WithServerOnMessageFunc(func(c *Conn, op Opcode, payload []byte) {
upgrade := NewUpgrade(WithServerBufioParseMode(), WithServerDecompression(), WithServerOnMessageFunc(func(c *Conn, op Opcode, payload []byte) {
c.WriteMessage(op, payload)
}))
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
Expand All @@ -352,7 +352,7 @@ func TestFragmentFrame(t *testing.T) {
defer ts.Close()

url := strings.ReplaceAll(ts.URL, "http", "ws")
con, err := Dial(url, WithClientDisableBufioClearHack(), WithClientOnMessageFunc(func(c *Conn, mt Opcode, payload []byte) {
con, err := Dial(url, WithClientDisableBufioClearHack(), WithClientDecompressAndCompress(), WithClientOnMessageFunc(func(c *Conn, mt Opcode, payload []byte) {
atomic.AddInt32(&run, int32(1))
data <- string(payload)
}))
Expand Down
3 changes: 1 addition & 2 deletions upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (

"github.com/antlabs/wsutil/bufio2"
"github.com/antlabs/wsutil/bytespool"
"github.com/antlabs/wsutil/enum"
"github.com/antlabs/wsutil/fixedreader"
"github.com/antlabs/wsutil/rsp"
)
Expand Down Expand Up @@ -111,7 +110,7 @@ func upgradeInner(w http.ResponseWriter, r *http.Request, conf *Config) (c *Conn
var bp bytespool.BytesPool
bp.Init()
if conf.parseMode == ParseModeWindows {
fr.Init(conn, bytespool.GetBytes(conf.initPayloadSize()+enum.MaxFrameHeaderSize))
fr.Init(conn, bytespool.GetBytes(conf.initPayloadSize()))
}

conn.SetDeadline(time.Time{})
Expand Down

0 comments on commit c530175

Please sign in to comment.