Documentation
¶
Index ¶
- func WithoutJetstream(nc *NatsConnection)
- type NatsConnection
- func (n *NatsConnection) AddEventSub(t TopicType, entityId string, handler func(ha.EventData) error) (*nats.Subscription, error)
- func (n *NatsConnection) AddRawSub(t TopicType, entityId string, handler func([]byte) error) (*nats.Subscription, error)
- func (n *NatsConnection) AddStateSub(t TopicType, entityId string, handler func(ha.StateData) error) (*nats.Subscription, error)
- func (n *NatsConnection) AddSub(t TopicType, entityId string, handler func() error) (*nats.Subscription, error)
- func (n *NatsConnection) Close()
- func (n *NatsConnection) Connect() error
- func (n *NatsConnection) Publish(ctx context.Context, subject string, payload []byte, ...)
- func (n *NatsConnection) Stream(ctx context.Context, subject string) (stream jetstream.Stream, consumer jetstream.Consumer, err error)
- func (n *NatsConnection) Subscribe(subject string) (sub *nats.Subscription, ch chan *nats.Msg, err error)
- type NatsConnectionOption
- func WithClientName(name string) NatsConnectionOption
- func WithConnectionOption(opt nats.Option) NatsConnectionOption
- func WithHostName(hostname string) NatsConnectionOption
- func WithJetstreamnOption(opt jetstream.JetStreamOpt) NatsConnectionOption
- func WithLogger(logger *slog.Logger) NatsConnectionOption
- func WithPort(port string) NatsConnectionOption
- func WithToken(token string) NatsConnectionOption
- type TopicType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithoutJetstream ¶ added in v0.21.0
func WithoutJetstream(nc *NatsConnection)
Types ¶
type NatsConnection ¶
type NatsConnection struct { HostName string Port string UseJetstream bool Conn *nats.Conn JS jetstream.JetStream // contains filtered or unexported fields }
func DefaultNatsConnection ¶
func DefaultNatsConnection() *NatsConnection
func New ¶ added in v0.21.0
func New(optFuncs ...NatsConnectionOption) *NatsConnection
func (*NatsConnection) AddEventSub ¶ added in v0.23.0
func (n *NatsConnection) AddEventSub(t TopicType, entityId string, handler func(ha.EventData) error) (*nats.Subscription, error)
AddEventSub: Add a subscriber to the NATS client that receives the full event payload
func (*NatsConnection) AddRawSub ¶ added in v0.24.3
func (n *NatsConnection) AddRawSub(t TopicType, entityId string, handler func([]byte) error) (*nats.Subscription, error)
AddEventSub: Add a subscriber to the NATS client that receives the raw event payload in bytes
func (*NatsConnection) AddStateSub ¶ added in v0.23.0
func (n *NatsConnection) AddStateSub(t TopicType, entityId string, handler func(ha.StateData) error) (*nats.Subscription, error)
AddStateSub: Add a subscriber to the NATS client that receives the new state payload from an event
func (*NatsConnection) AddSub ¶ added in v0.24.2
func (n *NatsConnection) AddSub(t TopicType, entityId string, handler func() error) (*nats.Subscription, error)
AddSub: Add a subscriber to the NATS client that doesn't receive any data from the event
func (*NatsConnection) Close ¶
func (n *NatsConnection) Close()
func (*NatsConnection) Connect ¶
func (n *NatsConnection) Connect() error
func (*NatsConnection) Publish ¶
func (n *NatsConnection) Publish(ctx context.Context, subject string, payload []byte, opts ...jetstream.PublishOpt)
func (*NatsConnection) Subscribe ¶
func (n *NatsConnection) Subscribe(subject string) (sub *nats.Subscription, ch chan *nats.Msg, err error)
type NatsConnectionOption ¶ added in v0.21.0
type NatsConnectionOption func(*NatsConnection)
func WithClientName ¶ added in v0.21.0
func WithClientName(name string) NatsConnectionOption
func WithConnectionOption ¶ added in v0.21.0
func WithConnectionOption(opt nats.Option) NatsConnectionOption
func WithHostName ¶ added in v0.21.0
func WithHostName(hostname string) NatsConnectionOption
func WithJetstreamnOption ¶ added in v0.21.0
func WithJetstreamnOption(opt jetstream.JetStreamOpt) NatsConnectionOption
func WithLogger ¶ added in v0.23.0
func WithLogger(logger *slog.Logger) NatsConnectionOption
func WithPort ¶ added in v0.21.0
func WithPort(port string) NatsConnectionOption
func WithToken ¶ added in v0.21.0
func WithToken(token string) NatsConnectionOption
type TopicType ¶ added in v0.23.0
type TopicType string
const AttributeTopicType TopicType = "attributes"
const CommandTopicType TopicType = "command"
const NfcTopicType TopicType = "nfc"
const ScheduleTopicType TopicType = "schedules"
const StateTopicType TopicType = "states"
const TimerTopicType TopicType = "timers"
const ZhaTopicType TopicType = "zha"
const ZwaveSceneTopicType TopicType = "zwave-scene"
const ZwaveTopicType TopicType = "zwave"
Click to show internal directories.
Click to hide internal directories.