mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-05 03:23:50 +08:00
fix connection.
This commit is contained in:
parent
013c937ad7
commit
c41a3dbb0f
@ -208,8 +208,7 @@ func (c *QQClient) Login() (*LoginResponse, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
go c.netLoop()
|
go c.netLoop()
|
||||||
seq, packet := c.buildLoginPacket()
|
rsp, err := c.sendAndWait(c.buildLoginPacket())
|
||||||
rsp, err := c.sendAndWait(seq, packet)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Disconnect()
|
c.Disconnect()
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -226,6 +225,7 @@ func (c *QQClient) SubmitCaptcha(result string, sign []byte) (*LoginResponse, er
|
|||||||
seq, packet := c.buildCaptchaPacket(result, sign)
|
seq, packet := c.buildCaptchaPacket(result, sign)
|
||||||
rsp, err := c.sendAndWait(seq, packet)
|
rsp, err := c.sendAndWait(seq, packet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
c.Disconnect()
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
l := rsp.(LoginResponse)
|
l := rsp.(LoginResponse)
|
||||||
@ -238,6 +238,7 @@ func (c *QQClient) SubmitCaptcha(result string, sign []byte) (*LoginResponse, er
|
|||||||
func (c *QQClient) SubmitSMS(code string) (*LoginResponse, error) {
|
func (c *QQClient) SubmitSMS(code string) (*LoginResponse, error) {
|
||||||
rsp, err := c.sendAndWait(c.buildSMSCodeSubmitPacket(code))
|
rsp, err := c.sendAndWait(c.buildSMSCodeSubmitPacket(code))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
c.Disconnect()
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
l := rsp.(LoginResponse)
|
l := rsp.(LoginResponse)
|
||||||
@ -1027,6 +1028,9 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *QQClient) netLoop() {
|
func (c *QQClient) netLoop() {
|
||||||
|
if c.NetLooping {
|
||||||
|
return
|
||||||
|
}
|
||||||
c.NetLooping = true
|
c.NetLooping = true
|
||||||
reader := binary.NewNetworkReader(c.Conn)
|
reader := binary.NewNetworkReader(c.Conn)
|
||||||
retry := 0
|
retry := 0
|
||||||
@ -1126,11 +1130,12 @@ func (c *QQClient) doHeartbeat() {
|
|||||||
sso := packets.BuildSsoPacket(seq, c.version.AppId, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
sso := packets.BuildSsoPacket(seq, c.version.AppId, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
||||||
packet := packets.BuildLoginPacket(c.Uin, 0, []byte{}, sso, []byte{})
|
packet := packets.BuildLoginPacket(c.Uin, 0, []byte{}, sso, []byte{})
|
||||||
_, err := c.sendAndWait(seq, packet)
|
_, err := c.sendAndWait(seq, packet)
|
||||||
if err != nil {
|
if err == nil {
|
||||||
_ = c.Conn.Close()
|
|
||||||
}
|
|
||||||
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
c.lastLostMsg = "Heartbeat failed"
|
||||||
|
c.Disconnect()
|
||||||
|
}
|
||||||
c.heartbeatEnabled = false
|
c.heartbeatEnabled = false
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user