mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
fix bug.
This commit is contained in:
parent
a7e460246f
commit
569bcdc7b1
@ -555,18 +555,26 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) {
|
|||||||
|
|
||||||
func (c *QQClient) loop() {
|
func (c *QQClient) loop() {
|
||||||
reader := binary.NewNetworkReader(c.Conn)
|
reader := binary.NewNetworkReader(c.Conn)
|
||||||
|
retry := 0
|
||||||
for c.Online {
|
for c.Online {
|
||||||
l, err := reader.ReadInt32()
|
l, err := reader.ReadInt32()
|
||||||
if err == io.EOF || err == io.ErrClosedPipe {
|
if err == io.EOF || err == io.ErrClosedPipe {
|
||||||
err = c.connect()
|
err = c.connect()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Online = false
|
c.Online = false
|
||||||
return
|
c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: "Connection lost."})
|
||||||
|
break
|
||||||
}
|
}
|
||||||
reader = binary.NewNetworkReader(c.Conn)
|
reader = binary.NewNetworkReader(c.Conn)
|
||||||
c.registerClient()
|
c.registerClient()
|
||||||
}
|
}
|
||||||
if l <= 0 {
|
if l <= 0 {
|
||||||
|
retry++
|
||||||
|
time.Sleep(time.Second * 3)
|
||||||
|
if retry > 10 {
|
||||||
|
c.Online = false
|
||||||
|
c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: "Connection lost."})
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
data, err := reader.ReadBytes(int(l) - 4)
|
data, err := reader.ReadBytes(int(l) - 4)
|
||||||
@ -582,6 +590,7 @@ func (c *QQClient) loop() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
retry = 0
|
||||||
//fmt.Println(pkt.CommandName)
|
//fmt.Println(pkt.CommandName)
|
||||||
go func() {
|
go func() {
|
||||||
decoder, ok := c.decoders[pkt.CommandName]
|
decoder, ok := c.decoders[pkt.CommandName]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user