diff --git a/broker/client.go b/broker/client.go index c3cc96d..7d2d714 100644 --- a/broker/client.go +++ b/broker/client.go @@ -121,14 +121,16 @@ func (c *client) readLoop() { return default: //add read timeout - if err := nc.SetReadDeadline(time.Now().Add(timeOut)); err != nil { - log.Error("set read timeout error: ", zap.Error(err), zap.String("ClientID", c.info.clientID)) - msg := &Message{ - client: c, - packet: DisconnectdPacket, + if keepAlive > 0 { + if err := nc.SetReadDeadline(time.Now().Add(timeOut)); err != nil { + log.Error("set read timeout error: ", zap.Error(err), zap.String("ClientID", c.info.clientID)) + msg := &Message{ + client: c, + packet: DisconnectdPacket, + } + b.SubmitWork(c.info.clientID, msg) + return } - b.SubmitWork(c.info.clientID, msg) - return } packet, err := packets.ReadPacket(nc)