Crackord/sender.service/app/internal/nats/nats.go

30 lines
769 B
Go

package nats
import "github.com/nats-io/nats.go"
// nats pub -s "nats://nats-1:4222" messiaa
// NatsConnection struct для хранения соединения NATS
type NatsConnection struct {
Conn *nats.Conn
}
// Connect функция для подключения к NATS-серверу
func (nc *NatsConnection) Connect(url string) error {
conn, err := nats.Connect(url)
if err != nil {
return err
}
nc.Conn = conn
return nil
}
// Scanner функция для подписки на тему и обработки сообщений
func (nc *NatsConnection) Scanner(subject string, handler func(msg *nats.Msg)) (*nats.Subscription, error) {
sub, err := nc.Conn.Subscribe(subject, handler)
if err != nil {
return nil, err
}
return sub, nil
}