package data import ( "context" "encoding/json" "ky-go-kratos/app/websocket/internal/biz" "github.com/go-kratos/kratos/v2/log" ) // WebSocketRepo is a WebSocket repository. type WebSocketRepo struct { data *Data log *log.Helper } // NewWebSocketRepo new a WebSocket repository. func NewWebSocketRepo(data *Data, logger log.Logger) biz.WebSocketRepo { return &WebSocketRepo{ data: data, log: log.NewHelper(logger), } } // Message represents a WebSocket message structure type Message struct { Type string `json:"type"` Content json.RawMessage `json:"content"` } // SendMessage sends a message to Kafka. func (r *WebSocketRepo) SendMessage(ctx context.Context, message []byte) error { err := r.data.kafka.SendToKafkaMessage(ctx, "websocket", message) if err != nil { r.log.Errorf("failed to send message to kafka: %v", err) return err } return nil }