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) if msg.TrySendCount < 4 { msg.TrySendCount++ } logger.Minecraft.Println("ackHandler mc", 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) } } } } } }