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,10 +310,16 @@ func (slf *Server) Run(addr string) error {
conn.Close(e)
}
}()
var deadline = times.Zero
if slf.websocketReadDeadline > 0 {
deadline = time.Now().Add(slf.websocketReadDeadline)
}
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 {
if err := ws.SetReadDeadline(deadline); err != nil {
panic(err)
}
}
messageType, packet, readErr := ws.ReadMessage()
if readErr != nil {
if conn.IsClosed() {