Преглед изворни кода

clear extra data when connect close

Joyit пре 2 недеља
родитељ
комит
be51526b66
1 измењених фајлова са 3 додато и 1 уклоњено
  1. 3 1
      line.go

+ 3 - 1
line.go

@@ -23,7 +23,8 @@ type Line struct {
 	pingID         uint16    // 只有客户端使用
 	pingWrongCount uint8     // 记录 ping id 反馈错误次数,超过3次则重新连接
 
-	Extra sync.Map // 附加信息,由应用端决定具体内容
+	Extra sync.Map // 附加临时信息,由应用端决定具体内容,断线会自动清理
+	Keep  sync.Map // 附加固定信息,由应用端决定具体内容,断线不会自动清理,不过也不能保证一直保持有值,断线后可能会被系统清理
 
 	// 当前连接的管道
 	sendRequest  chan *RequestData  // 发送请求数据
@@ -275,6 +276,7 @@ func (c *Line) Close(quick bool) {
 			go c.hub.cleanDeadConnect()
 		}
 	}
+	c.Extra.Clear()
 	c.updated = time.Now()
 }