1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-07 12:43:32 +08:00

feat: release client.

This commit is contained in:
Mrs4s 2021-07-18 15:58:23 +08:00
parent b93c02e18e
commit df059c2a56
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7

View File

@ -63,6 +63,7 @@ type QQClient struct {
retryTimes int
version *versionInfo
deviceInfo *DeviceInfo
alive bool
// tlv cache
t104 []byte
@ -212,6 +213,7 @@ func NewClientMd5(uin int64, passwordMd5 [16]byte) *QQClient {
onlinePushCache: utils.NewCache(time.Second * 15),
// version: genVersionInfo(SystemDeviceInfo.Protocol),
servers: []*net.TCPAddr{},
alive: true,
}
cli.UseDevice(SystemDeviceInfo)
sso, err := getSSOAddress()
@ -273,6 +275,13 @@ func (c *QQClient) UseDevice(info *DeviceInfo) {
c.deviceInfo = info
}
func (c *QQClient) Release() {
if c.Online {
c.Disconnect()
}
c.alive = false
}
// Login send login request
func (c *QQClient) Login() (*LoginResponse, error) {
if c.Online {
@ -1016,9 +1025,8 @@ func (c *QQClient) unexpectedDisconnect(_ *utils.TCPListener, e error) {
}
func (c *QQClient) netLoop() {
// todo: release this
errCount := 0
for {
for c.alive {
l, err := c.TCP.ReadInt32()
if err != nil {
time.Sleep(time.Millisecond * 500)