feat: implement real ping RTT calculation instead of hardcoded 50ms
This commit is contained in:
@@ -459,11 +459,20 @@ func (c *Client) processCommand(data []byte, pkt *protocol.Packet) error {
|
||||
|
||||
case "notifyconnectioninforequest":
|
||||
// Server asking for connection info. We MUST reply to update Ping in UI and avoid timeout.
|
||||
log.Println("Server requested connection info. sending 'setconnectioninfo'...")
|
||||
log.Println("Server requested connection info. Sending 'setconnectioninfo'...")
|
||||
|
||||
cmd := protocol.NewCommand("setconnectioninfo")
|
||||
cmd.AddParam("connection_ping", "50")
|
||||
cmd.AddParam("connection_ping_deviation", "5")
|
||||
|
||||
// Use real ping values if available, otherwise default to 50ms
|
||||
pingMs := c.PingRTT
|
||||
pingDev := c.PingDeviation
|
||||
if pingMs == 0 {
|
||||
pingMs = 50.0 // Default before first measurement
|
||||
pingDev = 5.0
|
||||
}
|
||||
|
||||
cmd.AddParam("connection_ping", fmt.Sprintf("%.4f", pingMs))
|
||||
cmd.AddParam("connection_ping_deviation", fmt.Sprintf("%.4f", pingDev))
|
||||
|
||||
// Detailed stats for each kind as seen in ts3j (KEEPALIVE, SPEECH, CONTROL)
|
||||
kinds := []string{"keepalive", "speech", "control"}
|
||||
|
||||
Reference in New Issue
Block a user