WebSocketServer/modules/structs/socket.go

59 lines
1.0 KiB
Go

package structs
import (
"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
}
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
}
type ReceivedSocketMessage struct {
Cmd int
Rec string // represent receiver user id
Body any
}