30 lines
769 B
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
|
|
}
|