@@ -344,7 +344,7 @@ func (cp *commonPage) getServerStat(c *gin.Context, withPublicNote bool) ([]byte
344344
345345 // 计算当月累积流量(模拟月度重置)
346346 var monthlyTransfer uint64
347-
347+
348348 // 如果服务器有最后活跃时间记录,且在当月内,使用累积流量
349349 if ! server .LastActive .IsZero () && server .LastActive .After (currentMonthStart ) {
350350 monthlyTransfer = server .CumulativeNetInTransfer + server .CumulativeNetOutTransfer
@@ -471,7 +471,7 @@ func (cp *commonPage) home(c *gin.Context) {
471471
472472 // 计算当月累积流量(模拟月度重置)
473473 var monthlyTransfer uint64
474-
474+
475475 // 如果服务器有最后活跃时间记录,且在当月内,使用累积流量
476476 if ! actualServer .LastActive .IsZero () && actualServer .LastActive .After (currentMonthStart ) {
477477 monthlyTransfer = actualServer .CumulativeNetInTransfer + actualServer .CumulativeNetOutTransfer
@@ -555,18 +555,19 @@ func (cp *commonPage) ws(c *gin.Context) {
555555 // 强制触发GC清理连接相关内存
556556 runtime .GC ()
557557 }()
558-
558+
559559 // 设置连接超时和大小限制
560560 conn .SetReadLimit (512 * 1024 ) // 512KB 限制
561561 conn .SetPongHandler (func (appData string ) error {
562- conn .SetReadDeadline (time .Now ().Add (60 * time .Second ))
562+ // 延长读取超时时间,增强容错性
563+ conn .SetReadDeadline (time .Now ().Add (120 * time .Second ))
563564 return nil
564565 })
565-
566+
566567 // 使用context控制连接生命周期,增加超时时间
567- ctx , cancel := context .WithTimeout (c .Request .Context (), 45 * time .Minute )
568+ ctx , cancel := context .WithTimeout (c .Request .Context (), 60 * time .Minute )
568569 defer cancel ()
569-
570+
570571 count := 0
571572 ticker := time .NewTicker (time .Second )
572573 defer ticker .Stop ()
@@ -598,9 +599,9 @@ func (cp *commonPage) ws(c *gin.Context) {
598599
599600 if err := conn .WriteMessage (websocket .TextMessage , stat ); err != nil {
600601 // 检查是否为网络连接错误
601- if strings .Contains (err .Error (), "broken pipe" ) ||
602- strings .Contains (err .Error (), "connection reset" ) ||
603- strings .Contains (err .Error (), "use of closed network connection" ) {
602+ if strings .Contains (err .Error (), "broken pipe" ) ||
603+ strings .Contains (err .Error (), "connection reset" ) ||
604+ strings .Contains (err .Error (), "use of closed network connection" ) {
604605 // 静默处理网络连接错误,客户端可能已断开
605606 return
606607 }
@@ -613,9 +614,9 @@ func (cp *commonPage) ws(c *gin.Context) {
613614 err = conn .WriteMessage (websocket .PingMessage , []byte {})
614615 if err != nil {
615616 // 检查是否为网络连接错误
616- if strings .Contains (err .Error (), "broken pipe" ) ||
617- strings .Contains (err .Error (), "connection reset" ) ||
618- strings .Contains (err .Error (), "use of closed network connection" ) {
617+ if strings .Contains (err .Error (), "broken pipe" ) ||
618+ strings .Contains (err .Error (), "connection reset" ) ||
619+ strings .Contains (err .Error (), "use of closed network connection" ) {
619620 // 静默处理网络连接错误
620621 return
621622 }
@@ -804,12 +805,12 @@ func (cp *commonPage) fm(c *gin.Context) {
804805 return
805806 }
806807 defer wsConn .Close ()
807-
808+
808809 // 设置连接限制和超时
809810 wsConn .SetReadLimit (1024 * 1024 ) // 1MB 限制
810811 wsConn .SetReadDeadline (time .Now ().Add (60 * time .Second ))
811812 wsConn .SetWriteDeadline (time .Now ().Add (10 * time .Second ))
812-
813+
813814 conn := websocketx .NewConn (wsConn )
814815
815816 // 使用 context 控制 PING 保活 goroutine 的生命周期
@@ -1007,7 +1008,7 @@ func (cp *commonPage) apiTraffic(c *gin.Context) {
10071008
10081009 // 计算当月累积流量(模拟月度重置)
10091010 var monthlyTransfer uint64
1010-
1011+
10111012 // 如果服务器有最后活跃时间记录,且在当月内,使用累积流量
10121013 if ! actualServer .LastActive .IsZero () && actualServer .LastActive .After (currentMonthStart ) {
10131014 monthlyTransfer = actualServer .CumulativeNetInTransfer + actualServer .CumulativeNetOutTransfer
@@ -1141,7 +1142,7 @@ func (cp *commonPage) apiServerTraffic(c *gin.Context) {
11411142
11421143 // 计算当月累积流量(模拟月度重置)
11431144 var monthlyTransfer uint64
1144-
1145+
11451146 // 如果服务器有最后活跃时间记录,且在当月内,使用累积流量
11461147 if ! server .LastActive .IsZero () && server .LastActive .After (currentMonthStart ) {
11471148 monthlyTransfer = server .CumulativeNetInTransfer + server .CumulativeNetOutTransfer
0 commit comments