package structs import ( "context" "encoding/json" "sync" "github.com/gofiber/websocket/v2" "github.com/sirupsen/logrus" ) type SocketClient struct { Conn *websocket.Conn connMu sync.Mutex RabbitMqQueueName string RabbitMqConsumerId string CancelFunc context.CancelFunc } type SocketMessage struct { Conn *websocket.Conn Msg []byte } func (socketClient *SocketClient) SendMessage(message SendSocketMessage) error { marshaledMessage, err := json.Marshal(message) if err != nil { logrus.Errorln("Failed to send ws message, err:", err) return err } socketClient.connMu.Lock() defer socketClient.connMu.Unlock() err = socketClient.Conn.WriteMessage(websocket.TextMessage, marshaledMessage) if err != nil { logrus.Errorln("Failed to write ws message, err:", err) return err } return nil } type SendSocketMessage struct { Cmd int Body any } type SocketMessageTest struct { Cmd int Body string }