42 lines
798 B
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
|
|
}
|