perf: server 包 websocket SetReadDeadline 优化

This commit is contained in:
kercylan98 2023-09-12 18:41:35 +08:00
parent 637ae27882
commit dc3c7d2eea
1 changed files with 8 additions and 2 deletions

View File

@ -310,9 +310,15 @@ func (slf *Server) Run(addr string) error {
conn.Close(e) conn.Close(e)
} }
}() }()
var deadline = times.Zero
if slf.websocketReadDeadline > 0 {
deadline = time.Now().Add(slf.websocketReadDeadline)
}
for !conn.IsClosed() { for !conn.IsClosed() {
if err := ws.SetReadDeadline(super.If(slf.websocketReadDeadline <= 0, times.Zero, time.Now().Add(slf.websocketReadDeadline))); err != nil { if slf.websocketReadDeadline > 0 {
panic(err) if err := ws.SetReadDeadline(deadline); err != nil {
panic(err)
}
} }
messageType, packet, readErr := ws.ReadMessage() messageType, packet, readErr := ws.ReadMessage()
if readErr != nil { if readErr != nil {