nats

package
v2.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: Apache-2.0 Imports: 8 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(opt *Options)

Option of the NATS subscriber or publisher

func WithClientName

func WithClientName(name string) Option

WithClientName is an Option to set the client name.

func WithContext

func WithContext(ctx context.Context) Option

WithContext puts the client context value

func WithEncoder

func WithEncoder(encoder encoder.Encoder) Option

WithEncoder set the message encoder

func WithErrorHandler

func WithErrorHandler(h nc.ErrorHandler) Option

WithErrorHandler set handler of error processing

func WithGroupName

func WithGroupName(name string) Option

WithGroupName puts the name group of the subsciber or publisher

func WithLogger

func WithLogger(logger loggerInterface) Option

WithLogger provides logging interface

func WithNatsConn

func WithNatsConn(conn *nats.Conn) Option

WithNatsConn is an Option to inited client connection

func WithNatsOptions

func WithNatsOptions(natsOpts ...nats.Option) Option

WithNatsOptions provides options of the NATS module

func WithNatsURL

func WithNatsURL(urlString string) Option

WithNatsURL is an Option to set the URL the client should connect to. The url can contain username/password semantics. e.g. nats://derek:pass@localhost:4222/{groupName}?topics=topic1,topic2 Comma separated arrays are also supported, e.g. urlA, urlB.

func WithNkey

func WithNkey(pubKey string, sigCB nats.SignatureHandler) Option

WithNkey will set the public Nkey and the signature callback to sign the server nonce.

func WithPanicHandler

func WithPanicHandler(h nc.PanicHandler) Option

WithPanicHandler set handler of panic processing

func WithToken

func WithToken(token string) Option

WithToken is an Option to set the token to use when a token is not included directly in the URLs and when a token handler is not provided.

func WithTokenHandler

func WithTokenHandler(cb nats.AuthTokenHandler) Option

WithTokenHandler is an Option to set the token handler to use when a token is not included directly in the URLs and when a token is not set.

func WithTopics

func WithTopics(topics ...string) Option

WithTopics will set the list of topics for publishing or subscribing

func WithUserCredentials

func WithUserCredentials(userOrChainedFile string, seedFiles ...string) Option

WithUserCredentials is a convenience function that takes a filename for a user's JWT and a filename for the user's private Nkey seed.

func WithUserInfo

func WithUserInfo(user, password string) Option

WithUserInfo is an Option to set the username and password to use when not included directly in the URLs.

func WithUserJWT

func WithUserJWT(userCB nats.UserJWTHandler, sigCB nats.SignatureHandler) Option

WithUserJWT will set the callbacks to retrieve the user's JWT and the signature callback to sign the server nonce. This an the Nkey option are mutually exclusive.

type Options

type Options struct {
	Ctx context.Context

	// Inited NATS connection
	Conn *nats.Conn

	// ConnURL of connection
	ConnURL string

	// Raw options from the "github.com/nats-io/nats.go" module
	NatsOptions []nats.Option

	// Name of the subscription group
	GroupName string

	// Names of topics for subscribing or publishing
	Topics []string

	// ErrorHandler of message processing
	ErrorHandler nc.ErrorHandler

	// PanicHandler process panic
	PanicHandler nc.PanicHandler

	// Message encoder interface
	Encoder encoder.Encoder

	// Logger of subscriber
	Logger loggerInterface
}

Options of the NATS wrapper

type Publisher

type Publisher struct {
	// contains filtered or unexported fields
}

Publisher provides functionality to work with NATS queue

func MustNewPublisher

func MustNewPublisher(options ...Option) *Publisher

MustNewPublisher object

func NewPublisher

func NewPublisher(options ...Option) (*Publisher, error)

NewPublisher object

func (*Publisher) Close

func (s *Publisher) Close() error

Close nats client

func (*Publisher) Publish

func (s *Publisher) Publish(ctx context.Context, messages ...any) (err error)

Publish one or more messages to the pub-service

type Subscriber

type Subscriber struct {
	notificationcenter.ModelSubscriber
	// contains filtered or unexported fields
}

Subscriber for NATS queue

func MustNewSubscriber

func MustNewSubscriber(options ...Option) *Subscriber

MustNewSubscriber creates new subscriber object

func NewSubscriber

func NewSubscriber(options ...Option) (*Subscriber, error)

NewSubscriber creates new subscriber object @url nats://login:password@hostname:port/group?topics=topic1,topic2,topicN

func (*Subscriber) Close

func (s *Subscriber) Close() error

Close nats client

func (*Subscriber) Listen

func (s *Subscriber) Listen(ctx context.Context) error

Listen kafka consumer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL