From aa606c2ef19fd4b15b9d7b52ea9fb56b57748c3d Mon Sep 17 00:00:00 2001 From: esrrhs Date: Sat, 22 Dec 2018 17:49:45 +0800 Subject: [PATCH] add --- client.go | 18 +++++++++++++----- server.go | 9 ++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/client.go b/client.go index e6c04d3..b9397c8 100644 --- a/client.go +++ b/client.go @@ -64,6 +64,8 @@ type Client struct { recvPacket uint64 sendPacketSize uint64 recvPacketSize uint64 + + sendHBPacket uint64 } type ClientConn struct { @@ -260,12 +262,13 @@ func (p *Client) ping() { } func (p *Client) showNet() { - fmt.Printf("send %dPacket/s %dKB/s recv %dPacket/s %dKB/s\n", - p.sendPacket, p.sendPacketSize/1024, p.recvPacket, p.recvPacketSize/1024) + fmt.Printf("send %dPacket/s %dKB/s recv %dPacket/s %dKB/s HB %d/s\n", + p.sendPacket, p.sendPacketSize/1024, p.recvPacket, p.recvPacketSize/1024,p.sendHBPacket) p.sendPacket = 0 p.recvPacket = 0 p.sendPacketSize = 0 p.recvPacketSize = 0 + p.sendHBPacket = 0 } func (p *Client) heartbeat() { @@ -282,6 +285,7 @@ func (p *Client) heartbeat() { conn.sendHBPacket++ + p.sendHBPacket++ } } } @@ -292,16 +296,20 @@ func (p *Client) calcHB() { if p.hb > 0 { for _, conn := range p.localIdToConnMap { - conn.avgRecvPacket = (conn.recvPacket + conn.avgRecvPacket*conn.avgRecvNum) / conn.avgRecvNum + if conn.avgRecvNum > 0 { + conn.avgRecvPacket = (conn.recvPacket + conn.avgRecvPacket*conn.avgRecvNum) / conn.avgRecvNum + } else { + conn.avgRecvPacket = conn.recvPacket + } conn.avgRecvNum++ if conn.avgRecvNum > 10 { conn.avgRecvNum = 0 } conn.recvPacket = 0 - conn.hbPacket = conn.avgRecvPacket * 2 / 3 + conn.hbPacket = conn.avgRecvPacket + 10 - if conn.hbPacket > 0 { + if conn.avgRecvPacket > 0 { fmt.Printf("calcHB %s %s %d %d\n", conn.id, conn.ipaddr.String(), conn.hbPacket, conn.sendHBPacket) } diff --git a/server.go b/server.go index d4f462c..075daee 100644 --- a/server.go +++ b/server.go @@ -24,6 +24,8 @@ type Server struct { recvPacket uint64 sendPacketSize uint64 recvPacketSize uint64 + + recvHBPacket uint64 } type ServerConn struct { @@ -105,8 +107,7 @@ func (p *Server) processPacket(packet *Packet) { udpConn.echoSeq = packet.echoSeq if packet.msgType == HB { - udpConn.echoId = packet.echoId - udpConn.echoSeq = packet.echoSeq + p.recvHBPacket++ return } @@ -179,9 +180,11 @@ func (p *Server) checkTimeoutConn() { } func (p *Server) showNet() { - fmt.Printf("send %dPacket/s %dKB/s recv %dPacket/s %dKB/s\n", p.sendPacket, p.sendPacketSize/1024, p.recvPacket, p.recvPacketSize/1024) + fmt.Printf("send %dPacket/s %dKB/s recv %dPacket/s %dKB/s HB %d/s\n", + p.sendPacket, p.sendPacketSize/1024, p.recvPacket, p.recvPacketSize/1024, p.recvHBPacket) p.sendPacket = 0 p.recvPacket = 0 p.sendPacketSize = 0 p.recvPacketSize = 0 + p.recvHBPacket = 0 }