2019-05-29 18:46:57 +03:00
|
|
|
package nats
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/micro/go-micro/broker"
|
|
|
|
nats "github.com/nats-io/nats.go"
|
|
|
|
)
|
|
|
|
|
|
|
|
type optionsKey struct{}
|
|
|
|
type drainConnectionKey struct{}
|
2020-01-14 16:23:16 +03:00
|
|
|
type localServerKey struct{}
|
2019-05-29 18:46:57 +03:00
|
|
|
|
|
|
|
// Options accepts nats.Options
|
|
|
|
func Options(opts nats.Options) broker.Option {
|
|
|
|
return setBrokerOption(optionsKey{}, opts)
|
|
|
|
}
|
|
|
|
|
2020-01-14 16:23:16 +03:00
|
|
|
// LocalServer embeds a local server rather than connecting to one
|
|
|
|
func LocalServer() broker.Option {
|
|
|
|
return setBrokerOption(localServerKey{}, true)
|
|
|
|
}
|
|
|
|
|
2019-05-29 18:46:57 +03:00
|
|
|
// DrainConnection will drain subscription on close
|
|
|
|
func DrainConnection() broker.Option {
|
2019-08-07 12:58:45 +03:00
|
|
|
return setBrokerOption(drainConnectionKey{}, struct{}{})
|
2019-05-29 18:46:57 +03:00
|
|
|
}
|