log messages are bundled

alpha
alex 2023-02-19 20:12:22 +01:00
parent 5a15e7b751
commit a67353a055
8 changed files with 41 additions and 37 deletions

48
dist/script.js vendored
View File

@ -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("<span style='color: #7f8c8d'> START OF OLD MESSAGES </span>")
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("<span style='color: #7f8c8d'> START OF OLD MESSAGES </span>")
for (const i in lastMessages) {
addMessage(lastMessages[i].MessageType, lastMessages[i].ServiceType, lastMessages[i].ServiceName, lastMessages[i].Msg, lastMessages[i].Timestamp)
}
addCustomMessage("<span style='color: #7f8c8d'> END OF OLD MESSAGES </span>")
}
} else {
if (serviceType == 0 && !checkboxAlpha.checked) return
if (serviceType == 1 && !checkboxBeta.checked) return
if (serviceType == 2 && !checkboxStable.checked) return
addCustomMessage("<span style='color: #7f8c8d'> END OF OLD MESSAGES </span>")
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)
}
}

2
go.mod
View File

@ -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

2
go.sum
View File

@ -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=

View File

@ -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()
}

View File

@ -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)
}

View File

@ -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

View File

@ -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(),
})
}})
}

View File

@ -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: