Documentation
¶
Overview ¶
Package nats provides a NATS Conn
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Conn ¶
type Conn interface {
Init(...Option) error
Options() Options
Address() string
Connect() error
Disconnect() error
Publish(topic string, m []byte, opts ...PublishOption) error
Subscribe(topic string, h Handler, opts ...SubscribeOption) (Subscriber, error)
Request(topic string, data []byte, timeout time.Duration) (*Message, error)
RequestWithContext(ctx context.Context, topic string, data []byte) (*Message, error)
String() string
GetConn() *nats.Conn
}
Conn is an interface used for asynchronous messaging.
type Handler ¶
Handler is used to process messages via a subscription of a topic. The handler is passed a publication interface which contains the message and optional Ack method to acknowledge receipt of the message.
type Option ¶
type Option func(*Options)
Option is conn option
func Codec ¶
Codec sets the codec used for encoding/decoding used where a broker does not support headers
func DrainConnection ¶
func DrainConnection() Option
DrainConnection will drain subscription on close
func ErrorHandler ¶
ErrorHandler will catch all broker errors that cant be handled in normal way, for example Codec errors
type Options ¶
type Options struct {
Addrs []string
Secure bool
Codec codec.Marshaler
// Handler executed when error happens in broker mesage
// processing
ErrorHandler Handler
TLSConfig *tls.Config
// Registry used for clustering
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
Trace bool
}
Options .
type Publication ¶
type Publication struct {
// contains filtered or unexported fields
}
Publication .
func (*Publication) Error ¶
func (p *Publication) Error() error
type PublishOption ¶
type PublishOption func(*PublishOptions)
PublishOption is Publish Option callbcak
func PublishContext ¶
func PublishContext(ctx context.Context) PublishOption
PublishContext set context
type PublishOptions ¶
type PublishOptions struct {
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
PublishOptions is Publish meesage options
type SubscribeOption ¶
type SubscribeOption func(*SubscribeOptions)
SubscribeOption is subscribe option
func DisableAutoAck ¶
func DisableAutoAck() SubscribeOption
DisableAutoAck will disable auto acking of messages after they have been handled.
func DrainSubscription ¶
func DrainSubscription() SubscribeOption
DrainSubscription will drain pending messages when unsubscribe
func Queue ¶
func Queue(name string) SubscribeOption
Queue sets the name of the queue to share messages on
func SubscribeContext ¶
func SubscribeContext(ctx context.Context) SubscribeOption
SubscribeContext set context
type SubscribeOptions ¶
type SubscribeOptions struct {
// AutoAck defaults to true. When a handler returns
// with a nil error the message is acked.
AutoAck bool
// Subscribers with the same queue name
// will create a shared subscription where each
// receives a subset of messages.
Queue string
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
SubscribeOptions is Subscribe options
func NewSubscribeOptions ¶
func NewSubscribeOptions(opts ...SubscribeOption) SubscribeOptions
NewSubscribeOptions new subscribe options
type Subscriber ¶
type Subscriber interface {
Options() SubscribeOptions
Topic() string
Unsubscribe() error
SetPendingLimits(msgLimit, bytesLimit int) error
}
Subscriber is a convenience return type for the Subscribe method