From a32c642ffa2b9f05e3b55fc88b2c2bed3277a080 Mon Sep 17 00:00:00 2001
From: gongshangguo <gongshangguo@admin.com>
Date: 星期二, 08 三月 2022 10:00:30 +0800
Subject: [PATCH] ignore

---
 client/client.go |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/client/client.go b/client/client.go
index c289f02..4688786 100644
--- a/client/client.go
+++ b/client/client.go
@@ -61,8 +61,6 @@
 	Writer *bufio.Writer
 	// 鍐欏叆閫氶亾
 	writeChan chan []byte
-	// 閫�鍑洪�氶亾
-	exitChan chan int8
 	// 杩炴帴鐘舵��
 	state State
 	// 鎶ユ枃澶�
@@ -110,7 +108,6 @@
 	c.readLock = new(sync.Mutex)
 	c.writeLock = new(sync.Mutex)
 	c.writeChan = make(chan []byte)
-	c.exitChan = make(chan int8)
 	c.state = StateInit
 	c.tmpByte4Slice = make([]byte, 4)
 	c.waitGroup = &util.WaitGroupWrapper{}
@@ -213,7 +210,7 @@
 }
 
 // 鍙戦�佹秷鎭�
-func (c *Client) WriteMsg(senderId string, msgType aiot.MSG_TYPE, reqType aiot.REQ_TYPE, data []byte, msgProto *aiot.MsgIdProto) (*aiot.Protocol, error) {
+func (c *Client) writeMsg(senderId string, msgType aiot.MSG_TYPE, reqType aiot.REQ_TYPE, data []byte, msgProto *aiot.MsgIdProto) (*aiot.Protocol, error) {
 	// 鍏抽棴鐨勮繛鎺ヤ笉鑳藉啓鍏�
 	if c.IsClosed() {
 		c.Logger.Error("Can not write msg on the closed chan", zap.Any("msgType", msgType), zap.Any("reqType", reqType), zap.Any("data", string(data)))
@@ -222,6 +219,7 @@
 
 	// 鎷艰骞跺彂閫佹秷鎭�
 	body := &aiot.Protocol{
+		Receiver: aiot.RECEIVER_TO_SAAS,
 		SenderId: senderId,
 		MsgType: msgType,
 		ReqType: reqType,
@@ -241,12 +239,17 @@
 		}
 	}()
 
+	// 閫氶亾宸插叧闂紝涓嶈兘鍐欏叆
 	if c.IsClosed() {
 		errMsg := "Can not write msg into closed chain"
 		c.Logger.Warn(errMsg, zap.Any("msg",body))
 		return errors.New(errMsg)
 	}
-	body.Receiver = aiot.RECEIVER_TO_SAAS
+
+	// 娑堟伅ID榛樿澶勭悊
+	if body.MsgProto == nil {
+		body.MsgProto = GetMsgProto("")
+	}
 	msgData, err := json.Marshal(body)
 	if err != nil {
 		c.Logger.Error("Fail to Marshal send data", zap.Error(err))
@@ -262,7 +265,7 @@
 	c.Logger.Debug("registering...")
 	data := c.deviceRegister
 	msgData, _ := json.Marshal(data)
-	_, err := c.WriteMsg(c.deviceId, aiot.MSG_TYPE_REGISTER, aiot.REQ_TYPE_REQUEST, msgData, c.GetMsgProto(""))
+	_, err := c.writeMsg(c.deviceId, aiot.MSG_TYPE_REGISTER, aiot.REQ_TYPE_REQUEST, msgData, GetMsgProto(""))
 	if err != nil {
 		c.Logger.Error("Fail to send device register", zap.Any("msg", msgData))
 	}
@@ -286,7 +289,7 @@
 				t.Stop()
 				return
 			}
-			go c.WriteMsg(c.deviceId, aiot.MSG_TYPE_HEART_BEAT, aiot.REQ_TYPE_REQUEST, pingData, c.GetMsgProto(""))
+			go c.writeMsg(c.deviceId, aiot.MSG_TYPE_HEART_BEAT, aiot.REQ_TYPE_REQUEST, pingData, GetMsgProto(""))
 		}
 	}
 }
@@ -418,7 +421,7 @@
 }
 
 // 鎷艰娑堟伅ID
-func (c *Client) GetMsgProto(msgId string) *aiot.MsgIdProto {
+func GetMsgProto(msgId string) *aiot.MsgIdProto {
 	// 鏂版秷鎭�
 	if msgId == "" {
 		return &aiot.MsgIdProto{
@@ -469,6 +472,7 @@
 		if c.IsConnected() {
 			c.clientCallback.OnClose(c)
 		}
+		close(c.writeChan)
 	}
 
 	// 璁剧疆杩炴帴灞炴��

--
Gitblit v1.8.0