From e14a04f81c363d52d6de2333bf5aa720b8eff215 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 29 Dec 2021 15:03:15 +0100 Subject: [PATCH] reply handling --- serverCommunication/web.go | 18 +++++++++--------- servers/web/socketHub.go | 4 +--- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/serverCommunication/web.go b/serverCommunication/web.go index b5143d2..19931d4 100644 --- a/serverCommunication/web.go +++ b/serverCommunication/web.go @@ -16,7 +16,7 @@ import ( "krakatoa.net/backend/modules/structs" ) -func HandleWebMessage(isVoice bool, conn *websocket.Conn, uuid string, status int, cmdID int, dest int, cmdNumber int, args string) { +func HandleWebMessage(isVoice bool, conn *websocket.Conn, uuid string, msg []byte) { var err error var raw []byte @@ -27,15 +27,15 @@ func HandleWebMessage(isVoice bool, conn *websocket.Conn, uuid string, status in return } - if status == kraProtocol.StatusReply { - // TODO: TODO: handling reply + status, cmdID, dest, cmdNumber, args := kraProtocol.DecodeMessage(msg) - if isVoice { - if isCmdIDInList(webClient.VoiceCmdIDs, cmdID) { - webClient.RemoveVoiceCmdID(cmdID) - } else { - webClient.RemoveMobileCmdID(cmdID) - } + if status == kraProtocol.StatusReply { + // TODO: TODO: handling reply - answering message to target dest (ex. GameServer-1) + + if isVoice && isCmdIDInList(webClient.VoiceCmdIDs, cmdID) { + webClient.RemoveVoiceCmdID(cmdID) + } else if isCmdIDInList(webClient.MobileCmdIDs, cmdID) { + webClient.RemoveMobileCmdID(cmdID) } return } diff --git a/servers/web/socketHub.go b/servers/web/socketHub.go index ec16fc5..a71b151 100644 --- a/servers/web/socketHub.go +++ b/servers/web/socketHub.go @@ -51,12 +51,10 @@ func RunHub() { case data := <-broadcast: logger.Web.Println("message received", data.Msg) - status, cmdID, dest, cmdNumber, args := kraProtocol.DecodeMessage(data.Msg) - // check if it is a connection from voice or mobile for _, client := range cache.WebClients { if client.MobileConn == data.Conn || client.VoiceConn == data.Conn { - go serverCommunication.HandleWebMessage(client.VoiceConn == data.Conn, data.Conn, client.Uuid, status, cmdID, dest, cmdNumber, args) + go serverCommunication.HandleWebMessage(client.VoiceConn == data.Conn, data.Conn, client.Uuid, data.Msg) break } }