diff --git a/dist/script.js b/dist/script.js index 12e1b42..caa138b 100644 --- a/dist/script.js +++ b/dist/script.js @@ -191,35 +191,39 @@ function connectWS() { } ws.onmessage = (msg) => { - let data = JSON.parse(msg.data) + let messages = JSON.parse(msg.data) - messageType = data.MessageType - serviceName = data.ServiceName - serviceType = data.ServiceType - timestamp = data.Timestamp + for (i in messages) { + data = messages[i] - if (messageType == 100 && serviceName == 100) { // viewer count - viewersCount.innerHTML = data.Msg + (data.Msg == 1 ? " viewer" : " viewers") + messageType = data.MessageType + serviceName = data.ServiceName + serviceType = data.ServiceType + timestamp = data.Timestamp - addViewerInfoMessage(serviceType == 1, timestamp) - } else if (messageType == 101 && serviceName == 101 && serviceType == 101) { - lastMessages = JSON.parse(data.Msg) - - if (lastMessages != null && lastMessages.length > 0) { - addCustomMessage("––––––––– START OF OLD MESSAGES –––––––––") + if (messageType == 100 && serviceName == 100) { // viewer count + viewersCount.innerHTML = data.Msg + (data.Msg == 1 ? " viewer" : " viewers") - for (const i in lastMessages) { - addMessage(lastMessages[i].MessageType, lastMessages[i].ServiceType, lastMessages[i].ServiceName, lastMessages[i].Msg, lastMessages[i].Timestamp) + addViewerInfoMessage(serviceType == 1, timestamp) + } else if (messageType == 101 && serviceName == 101 && serviceType == 101) { + lastMessages = JSON.parse(data.Msg) + + if (lastMessages != null && lastMessages.length > 0) { + addCustomMessage("––––––––– START OF OLD MESSAGES –––––––––") + + for (const i in lastMessages) { + addMessage(lastMessages[i].MessageType, lastMessages[i].ServiceType, lastMessages[i].ServiceName, lastMessages[i].Msg, lastMessages[i].Timestamp) + } + + addCustomMessage("––––––––– END OF OLD MESSAGES –––––––––") } + } else { + if (serviceType == 0 && !checkboxAlpha.checked) return + if (serviceType == 1 && !checkboxBeta.checked) return + if (serviceType == 2 && !checkboxStable.checked) return - addCustomMessage("––––––––– END OF OLD MESSAGES –––––––––") + addMessage(messageType, serviceType, serviceName, data.Msg, timestamp) } - } else { - if (serviceType == 0 && !checkboxAlpha.checked) return - if (serviceType == 1 && !checkboxBeta.checked) return - if (serviceType == 2 && !checkboxStable.checked) return - - addMessage(messageType, serviceType, serviceName, data.Msg, timestamp) } } diff --git a/go.mod b/go.mod index b800c15..458378e 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module clickandjoin.app/managementsystem go 1.18 require ( - git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.47 + git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.54 github.com/gocql/gocql v0.0.0-20211015133455-b225f9b53fa1 github.com/gofiber/fiber/v2 v2.42.0 github.com/gofiber/websocket/v2 v2.1.4 diff --git a/go.sum b/go.sum index e77c97a..b73f779 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.47 h1:vbXCuHSA7IGpZSGyZfzi31MK/rlxBParBMDEZsdBdWk= git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.47/go.mod h1:Jzc4/4ntrOLMOZYnUjkr1uBCVtRvPbEbQD+8kwBOdf4= +git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.54 h1:bAB8Z9qJgX/H+PNakoP1PK9Sox+oyy9+L4w7n/6JkBs= +git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper v1.0.54/go.mod h1:/CvzIeBG4vJK/MgXzwmwCYwodiTGTMOYGDF3ao/fFLM= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= diff --git a/modules/cache/cache.go b/modules/cache/cache.go index ee98db0..728fe86 100644 --- a/modules/cache/cache.go +++ b/modules/cache/cache.go @@ -42,14 +42,14 @@ func GetSocketClient(clientId string) (socketClient *structs.SocketClient, ok bo var lastLogMessages []gocnjhelper.RabbitMqLogMessage var muL sync.RWMutex -func AddLastLogMessage(rabbitMqLogMessage gocnjhelper.RabbitMqLogMessage) { +func AddLastLogMessages(rabbitMqLogMessage []gocnjhelper.RabbitMqLogMessage) { muL.Lock() if len(lastLogMessages) > utils.CachedLastLogMessages { lastLogMessages = lastLogMessages[1:] } - lastLogMessages = append(lastLogMessages, rabbitMqLogMessage) + lastLogMessages = append(lastLogMessages, rabbitMqLogMessage...) muL.Unlock() } diff --git a/modules/rabbitmq/helper.go b/modules/rabbitmq/helper.go index cde12e9..179df9d 100644 --- a/modules/rabbitmq/helper.go +++ b/modules/rabbitmq/helper.go @@ -41,18 +41,16 @@ func LogsMessagesHandling() { LogsClient.Channel.NotifyClose(channelClosedChannel) case msg := <-msgs: - gocnjhelper.LogDebugf("RECV msg %s", msg) + var logMessages []gocnjhelper.RabbitMqLogMessage - logMessage := gocnjhelper.RabbitMqLogMessage{} - - if err := json.Unmarshal(msg.Body, &logMessage); err != nil { + if err := json.Unmarshal(msg.Body, &logMessages); err != nil { gocnjhelper.LogErrorf("Failed to unmarshal json message, err: %s", err) continue } - socketclients.BroadcastLogMessage(logMessage) + socketclients.BroadcastLogMessage(logMessages) - cache.AddLastLogMessage(logMessage) + cache.AddLastLogMessages(logMessages) msg.Ack(false) } diff --git a/modules/structs/socketclient.go b/modules/structs/socketclient.go index 42dd49b..9c28bee 100644 --- a/modules/structs/socketclient.go +++ b/modules/structs/socketclient.go @@ -20,7 +20,7 @@ type SocketMessage struct { Msg []byte } -func (socketClient *SocketClient) SendMessage(message gocnjhelper.RabbitMqLogMessage) error { +func (socketClient *SocketClient) SendMessage(message []gocnjhelper.RabbitMqLogMessage) error { var marshaledMessage []byte var err error diff --git a/socketclients/socketclients.go b/socketclients/socketclients.go index 014e998..b92ba40 100644 --- a/socketclients/socketclients.go +++ b/socketclients/socketclients.go @@ -8,18 +8,18 @@ import ( gocnjhelper "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper" ) -func BroadcastLogMessage(rabbitMqLogMessage gocnjhelper.RabbitMqLogMessage) { +func BroadcastLogMessage(rabbitMqLogMessage []gocnjhelper.RabbitMqLogMessage) { for _, client := range cache.GetSocketClients() { client.SendMessage(rabbitMqLogMessage) } } func BroadcastViewersCountMessage(joined int) { - BroadcastLogMessage(gocnjhelper.RabbitMqLogMessage{ + BroadcastLogMessage([]gocnjhelper.RabbitMqLogMessage{{ MessageType: 100, ServiceName: 100, ServiceType: uint8(joined), Msg: strconv.Itoa(len(cache.GetSocketClients())), Timestamp: time.Now().UnixMilli(), - }) + }}) } diff --git a/socketserver/hub.go b/socketserver/hub.go index 8eea9f4..6fd920a 100644 --- a/socketserver/hub.go +++ b/socketserver/hub.go @@ -35,13 +35,13 @@ func RunHub() { continue } - socketClient.SendMessage(gocnjhelper.RabbitMqLogMessage{ + socketClient.SendMessage([]gocnjhelper.RabbitMqLogMessage{{ MessageType: 101, ServiceName: 101, ServiceType: 101, Msg: string(lastMessages), Timestamp: time.Now().Unix(), - }) + }}) } case data := <-broadcast: