Documentation ¶
Overview ¶
Package topics deals with MQTT topic names, topic filters and subscriptions.
- "Topic name" is a / separated string that could contain #, * and $
- / in topic name separates the string into "topic levels"
- # is a multi-level wildcard, and it must be the last character in the topic name. It represents the parent and all children levels.
- + is a single level wildwcard. It must be the only character in the topic level. It represents all names in the current level.
- $ is a special character that says the topic is a system level topic
Index ¶
- Constants
- func Register(name string, provider Provider)
- func UnRegister(name string)
- type Config
- type Manager
- func (m *Manager) Close() error
- func (m *Manager) Publish(msg *message.PublishMessage) error
- func (m *Manager) Retain(msg *message.PublishMessage) error
- func (m *Manager) Retained(topic string, msgs *[]*message.PublishMessage) error
- func (m *Manager) Subscribe(topic string, qos message.QosType, subscriber *types.Subscriber) (message.QosType, error)
- func (m *Manager) UnSubscribe(topic string, subscriber *types.Subscriber) error
- type Provider
Constants ¶
View Source
const ( // MWC is the multi-level wildcard MWC = "#" // SWC is the single level wildcard SWC = "+" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { Name string Stat systree.TopicsStat Persist persistenceTypes.Retained }
Config of topics manager
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager of topics
func (*Manager) Publish ¶
func (m *Manager) Publish(msg *message.PublishMessage) error
Publish message
func (*Manager) Retain ¶
func (m *Manager) Retain(msg *message.PublishMessage) error
Retain messages
func (*Manager) Retained ¶
func (m *Manager) Retained(topic string, msgs *[]*message.PublishMessage) error
Retained messages
func (*Manager) Subscribe ¶
func (m *Manager) Subscribe(topic string, qos message.QosType, subscriber *types.Subscriber) (message.QosType, error)
Subscribe to topic
func (*Manager) UnSubscribe ¶
func (m *Manager) UnSubscribe(topic string, subscriber *types.Subscriber) error
UnSubscribe from topic
type Provider ¶
type Provider interface { Configure(stat systree.TopicsStat, persist persistenceTypes.Retained) error Subscribe(topic string, qos message.QosType, subscriber *types.Subscriber) (message.QosType, error) UnSubscribe(topic string, subscriber *types.Subscriber) error Publish(msg *message.PublishMessage) error Retain(msg *message.PublishMessage) error Retained(topic string, msgs *[]*message.PublishMessage) error Close() error }
Provider interface
Click to show internal directories.
Click to hide internal directories.