mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
More Servers
This commit is contained in:
parent
0b3cb856c0
commit
220572f296
@ -155,7 +155,7 @@ func (c *QQClient) Login() (*LoginResponse, error) {
|
||||
if l.Success {
|
||||
c.lastLostMsg = ""
|
||||
c.registerClient()
|
||||
go c.heartbeat()
|
||||
c.startHeartbeat()
|
||||
_, _ = c.sendAndWait(c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix()))
|
||||
}
|
||||
return &l, nil
|
||||
@ -171,7 +171,7 @@ func (c *QQClient) SubmitCaptcha(result string, sign []byte) (*LoginResponse, er
|
||||
l := rsp.(LoginResponse)
|
||||
if l.Success {
|
||||
c.registerClient()
|
||||
go c.heartbeat()
|
||||
c.startHeartbeat()
|
||||
}
|
||||
return &l, nil
|
||||
}
|
||||
@ -606,8 +606,18 @@ func (g *GroupInfo) removeMember(uin int64) {
|
||||
}
|
||||
}
|
||||
|
||||
var servers = []*net.TCPAddr{
|
||||
{IP: net.IP{42, 81, 169, 46}, Port: 8080},
|
||||
{IP: net.IP{42, 81, 172, 81}, Port: 80},
|
||||
{IP: net.IP{114, 221, 148, 59}, Port: 14000},
|
||||
{IP: net.IP{42, 81, 172, 147}, Port: 443},
|
||||
{IP: net.IP{125, 94, 60, 146}, Port: 80},
|
||||
{IP: net.IP{114, 221, 144, 215}, Port: 80},
|
||||
{IP: net.IP{42, 81, 172, 22}, Port: 80},
|
||||
}
|
||||
|
||||
func (c *QQClient) connect() error {
|
||||
conn, err := net.Dial("tcp", "125.94.60.146:80") //TODO: more servers
|
||||
conn, err := net.DialTCP("tcp", nil, servers[rand.Intn(len(servers))])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -687,6 +697,7 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) {
|
||||
return rsp.Response, rsp.Error
|
||||
case <-time.After(time.Second * 15):
|
||||
c.handlers.Delete(seq)
|
||||
println("Packet Timed out")
|
||||
return nil, errors.New("time out")
|
||||
}
|
||||
}
|
||||
@ -758,12 +769,16 @@ func (c *QQClient) loop() {
|
||||
c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: c.lastLostMsg})
|
||||
}
|
||||
|
||||
func (c *QQClient) heartbeat() {
|
||||
for c.Online {
|
||||
time.Sleep(time.Second * 30)
|
||||
func (c *QQClient) startHeartbeat() {
|
||||
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||
}
|
||||
|
||||
func (c *QQClient) doHeartbeat() {
|
||||
if c.Online {
|
||||
seq := c.nextSeq()
|
||||
sso := packets.BuildSsoPacket(seq, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 0, []byte{}, sso, []byte{})
|
||||
_, _ = c.sendAndWait(seq, packet)
|
||||
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user