MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / ConnectionQualityTest

Method ConnectionQualityTest

client/network.go:34–71  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

32}
33
34func (c *QQClient) ConnectionQualityTest() *ConnectionQualityInfo {
35 if !c.Online.Load() {
36 return nil
37 }
38 r := &ConnectionQualityInfo{}
39 wg := sync.WaitGroup{}
40 wg.Add(2)
41
42 currentServerAddr := c.servers[c.currServerIndex].String()
43 go func() {
44 defer wg.Done()
45 var err error
46
47 if r.ChatServerLatency, err = qualityTest(currentServerAddr); err != nil {
48 c.error("test chat server latency error: %v", err)
49 r.ChatServerLatency = 9999
50 }
51
52 _ = c.ensureHighwayServers()
53 if c.highwaySession.AddrLength() > 0 {
54 if r.SrvServerLatency, err = qualityTest(c.highwaySession.SsoAddr[0].String()); err != nil {
55 c.error("test srv server latency error: %v", err)
56 r.SrvServerLatency = 9999
57 }
58 }
59 }()
60 go func() {
61 defer wg.Done()
62 res := utils.RunTCPPingLoop(currentServerAddr, 10)
63 r.ChatServerPacketLoss = res.PacketsLoss
64 if c.highwaySession.AddrLength() > 0 {
65 res = utils.RunTCPPingLoop(c.highwaySession.SsoAddr[0].String(), 10)
66 r.SrvServerPacketLoss = res.PacketsLoss
67 }
68 }()
69 wg.Wait()
70 return r
71}
72
73func (c *QQClient) initServers() {
74 adds, err := net.LookupIP("msfwifi.3g.qq.com") // host servers

Callers

nothing calls this directly

Calls 6

errorMethod · 0.95
ensureHighwayServersMethod · 0.95
RunTCPPingLoopFunction · 0.92
qualityTestFunction · 0.85
AddrLengthMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected