45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
|
package natsio
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
|
||
|
"github.com/nats-io/nats.go"
|
||
|
)
|
||
|
|
||
|
// JSONEncoder ...
|
||
|
type JSONEncoder struct {
|
||
|
encConn *nats.EncodedConn
|
||
|
}
|
||
|
|
||
|
// Subscribe ...
|
||
|
func (e JSONEncoder) Subscribe(subject string, cb nats.Handler) (*nats.Subscription, error) {
|
||
|
sub, err := e.encConn.Subscribe(subject, cb)
|
||
|
if err != nil {
|
||
|
log.Printf("natsio.JSONEncoder.Subscribe err: %v\n", err)
|
||
|
} else {
|
||
|
log.Printf("natsio.JSONEncoder - subscribed to subject %s successfully\n", subject)
|
||
|
}
|
||
|
return sub, err
|
||
|
}
|
||
|
|
||
|
// QueueSubscribe ...
|
||
|
func (e JSONEncoder) QueueSubscribe(subject, queue string, cb nats.Handler) (*nats.Subscription, error) {
|
||
|
sub, err := e.encConn.QueueSubscribe(subject, queue, cb)
|
||
|
if err != nil {
|
||
|
log.Printf("natsio.JSONEncoder.QueueSubscribe err: %v\n", err)
|
||
|
} else {
|
||
|
log.Printf("natsio.JSONEncoder.QueueSubscribe - subscribed to subject %s successfully\n", subject)
|
||
|
}
|
||
|
return sub, err
|
||
|
}
|
||
|
|
||
|
// Publish ...
|
||
|
func (e JSONEncoder) Publish(reply string, data interface{}) error {
|
||
|
return e.encConn.Publish(reply, data)
|
||
|
}
|
||
|
|
||
|
// Request ...
|
||
|
func (e JSONEncoder) Request(subject string, data interface{}, res interface{}) error {
|
||
|
return e.encConn.Request(subject, data, res, requestTimeout)
|
||
|
}
|