65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
package serverCommunication
|
|
|
|
import (
|
|
"time"
|
|
|
|
"krakatoa.net/backend/modules/cache"
|
|
"krakatoa.net/backend/modules/configs/kraSettingsConfig"
|
|
"krakatoa.net/backend/modules/logger"
|
|
)
|
|
|
|
/*
|
|
func getClientByDest(dest int, uuid string) (*structs.WebClient, *structs.MinecraftClient) {
|
|
switch dest {
|
|
case kraProtocol.DestVoice:
|
|
return GetWebClientByUuid(uuid), nil
|
|
case kraProtocol.DestMobile:
|
|
return GetWebClientByUuid(uuid), nil
|
|
case kraProtocol.DestProxy:
|
|
return nil, GetMinecraftClientByName("proxy-1")
|
|
case kraProtocol.DestPlayersCurrentServer:
|
|
return nil, GetMinecraftClientByName("lobby-1")
|
|
default:
|
|
logger.Web.Println("conn for dest is nil")
|
|
return nil, nil
|
|
}
|
|
}
|
|
*/
|
|
|
|
func AckHandler() {
|
|
ticker := time.NewTicker(20 * time.Millisecond) // 20 * time.Millisecond
|
|
|
|
for _ = range ticker.C {
|
|
currentTime := time.Now()
|
|
|
|
/*for uuid, webClient := range cache.WebClients {
|
|
logger.Web.Println("ackHandler web client", uuid, webClient.SendVoiceQueueMessages, webClient.SendMobileQueueMessages)
|
|
|
|
} */
|
|
|
|
for serverName, mcClient := range cache.MinecraftClients {
|
|
logger.Minecraft.Println("ackHandler mc client", serverName, mcClient.SendQueueMessages, kraSettingsConfig.Cfg.WebSocket.AckTimeouts)
|
|
|
|
for _, msg := range mcClient.SendQueueMessages {
|
|
logger.Minecraft.Println("msg", msg)
|
|
|
|
logger.Minecraft.Println("ackHandler mc", msg.TrySendCount, kraSettingsConfig.Cfg.WebSocket.AckTimeouts[msg.TrySendCount], currentTime.UnixMilli()-msg.Time.UnixMilli())
|
|
|
|
if int(currentTime.UnixMilli())-int(msg.Time.UnixMilli()) > kraSettingsConfig.Cfg.WebSocket.AckTimeouts[msg.TrySendCount] {
|
|
msg.Time = time.Now()
|
|
|
|
err := mcClient.SendBinaryMessage(msg.MessageRaw)
|
|
|
|
if err != nil {
|
|
logger.Minecraft.Println("ackHandler err sending msg", err)
|
|
}
|
|
}
|
|
|
|
if msg.TrySendCount < 4 {
|
|
msg.TrySendCount++
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|