admin-dashboard-backend/modules/cache/socketclient.go

42 lines
798 B
Go

package cache
import (
"jannex/admin-dashboard-backend/modules/structs"
"sync"
"github.com/gofiber/websocket/v2"
)
var socketClients []*structs.SocketClient
var mu sync.RWMutex
func AddSocketClient(sessionId string, socketClient *structs.SocketClient) {
mu.Lock()
socketClients = append(socketClients, socketClient)
mu.Unlock()
}
func DeleteClientByConn(conn *websocket.Conn) {
mu.Lock()
for i := 0; i < len(socketClients); i++ {
if socketClients[i].Conn == conn {
socketClients = removeSocketClient(socketClients, i)
break
}
}
mu.Unlock()
}
func removeSocketClient(s []*structs.SocketClient, i int) []*structs.SocketClient {
return append(s[:i], s[i+1:]...)
}
func GetSocketClients() []*structs.SocketClient {
mu.RLock()
defer mu.RUnlock()
return socketClients
}