mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +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 {
|
if l.Success {
|
||||||
c.lastLostMsg = ""
|
c.lastLostMsg = ""
|
||||||
c.registerClient()
|
c.registerClient()
|
||||||
go c.heartbeat()
|
c.startHeartbeat()
|
||||||
_, _ = c.sendAndWait(c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix()))
|
_, _ = c.sendAndWait(c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix()))
|
||||||
}
|
}
|
||||||
return &l, nil
|
return &l, nil
|
||||||
@ -171,7 +171,7 @@ func (c *QQClient) SubmitCaptcha(result string, sign []byte) (*LoginResponse, er
|
|||||||
l := rsp.(LoginResponse)
|
l := rsp.(LoginResponse)
|
||||||
if l.Success {
|
if l.Success {
|
||||||
c.registerClient()
|
c.registerClient()
|
||||||
go c.heartbeat()
|
c.startHeartbeat()
|
||||||
}
|
}
|
||||||
return &l, nil
|
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 {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -687,6 +697,7 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) {
|
|||||||
return rsp.Response, rsp.Error
|
return rsp.Response, rsp.Error
|
||||||
case <-time.After(time.Second * 15):
|
case <-time.After(time.Second * 15):
|
||||||
c.handlers.Delete(seq)
|
c.handlers.Delete(seq)
|
||||||
|
println("Packet Timed out")
|
||||||
return nil, errors.New("time out")
|
return nil, errors.New("time out")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -758,12 +769,16 @@ func (c *QQClient) loop() {
|
|||||||
c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: c.lastLostMsg})
|
c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: c.lastLostMsg})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *QQClient) heartbeat() {
|
func (c *QQClient) startHeartbeat() {
|
||||||
for c.Online {
|
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||||
time.Sleep(time.Second * 30)
|
}
|
||||||
|
|
||||||
|
func (c *QQClient) doHeartbeat() {
|
||||||
|
if c.Online {
|
||||||
seq := c.nextSeq()
|
seq := c.nextSeq()
|
||||||
sso := packets.BuildSsoPacket(seq, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
sso := packets.BuildSsoPacket(seq, "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{})
|
||||||
_, _ = c.sendAndWait(seq, packet)
|
_, _ = c.sendAndWait(seq, packet)
|
||||||
|
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user