Documentation
¶
Index ¶
Constants ¶
const UploadTopic = "SYS/dis/upload_records"
Variables ¶
var ( // MQTTHub client MQTTHub *Client // GroupID stands for group id GroupID string // ConnectedTopic to send connect event ConnectedTopic = "$hw/events/connected/%s" // DisconnectedTopic to send disconnect event DisconnectedTopic = "$hw/events/disconnected/%s" // MemberGet to get membership device MemberGet = "$hw/events/edgeGroup/%s/membership/get" // MemberGetRes to get membership device MemberGetRes = "$hw/events/edgeGroup/%s/membership/get/result" // MemberDetail which edge-client should be pub when service start MemberDetail = "$hw/events/edgeGroup/%s/membership/detail" // MemberDetailRes MemberDetail topic resp MemberDetailRes = "$hw/events/edgeGroup/%s/membership/detail/result" // MemberUpdate updating of the twin MemberUpdate = "$hw/events/edgeGroup/%s/membership/updated" // GroupUpdate updates a edgegroup GroupUpdate = "$hw/events/edgeGroup/%s/updated" // GroupAuthGet get temperary aksk from cloudhub GroupAuthGet = "$hw/events/edgeGroup/%s/authInfo/get" // GroupAuthGetRes temperary aksk from cloudhub GroupAuthGetRes = "$hw/events/edgeGroup/%s/authInfo/get/result" // SubTopics which edge-client should be sub SubTopics = []string{ "$hw/events/upload/#", "$hw/events/device/+/+/state/update", "$hw/events/device/+/+/twin/+", "$hw/events/node/+/membership/get", UploadTopic, "+/user/#", } )
Functions ¶
func OnSubMessageReceived ¶
OnSubMessageReceived msg received callback
func RegisterMsgHandler ¶ added in v1.11.0
func RegisterMsgHandler()
RegisterMsgHandler register handler for message if topic is matched in pattern for "$hw/events/device/+/twin/+", "$hw/events/node/+/membership/get", send to twin for other, send to hub for "SYS/dis/upload_records", no need to base64 topic
Types ¶
type AccessInfo ¶
type AccessInfo struct { Name string `json:"name"` Type string `json:"type"` Topic string `json:"topic"` Content []byte `json:"content"` }
AccessInfo that deliver between edge-hub and cloud-hub
type Client ¶
type Client struct { MQTTUrl string PubClientID string SubClientID string Username string Password string PubCli MQTT.Client SubCli MQTT.Client }
Client struct
type HandlerFunc ¶ added in v1.11.0
type MessageExpression ¶ added in v1.11.0
MessageExpression message expression
func NewExpression ¶ added in v1.11.0
func NewExpression() *MessageExpression
NewExpression new expression
func (*MessageExpression) GetExpression ¶ added in v1.11.0
func (exp *MessageExpression) GetExpression(topic string) *MessageExpression
GetExpression get expression
type MessageMux ¶ added in v1.11.0
type MessageMux struct {
// contains filtered or unexported fields
}
MessageMux message mux
func NewMessageMux ¶ added in v1.11.0
func NewMessageMux() *MessageMux
NewMessageMux new message mux
func (*MessageMux) Dispatch ¶ added in v1.11.0
func (mux *MessageMux) Dispatch(topic string, payload []byte)
func (*MessageMux) Entry ¶ added in v1.11.0
func (mux *MessageMux) Entry(pattern *MessagePattern, handle func(topic string, payload []byte)) *MessageMux
Entry mux := NewMessageMux(ctx, module) mux.Entry(NewPattern(res).Op(opr), handle))
type MessageMuxEntry ¶ added in v1.11.0
type MessageMuxEntry struct {
// contains filtered or unexported fields
}
MessageMuxEntry message mux entry
func NewEntry ¶ added in v1.11.0
func NewEntry(pattern *MessagePattern, handle func(topic string, payload []byte)) *MessageMuxEntry
NewEntry new entry
type MessagePattern ¶ added in v1.11.0
type MessagePattern struct {
// contains filtered or unexported fields
}
MessagePattern message pattern
func NewPattern ¶ added in v1.11.0
func NewPattern(resource string) *MessagePattern
NewPattern new pattern
func (*MessagePattern) Match ¶ added in v1.11.0
func (pattern *MessagePattern) Match(topic string) bool
Match /path/{param}/sub
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server serve as an internal mqtt broker.
func NewMqttServer ¶
NewMqttServer create an internal mqtt server.
func (*Server) InitInternalTopics ¶
func (m *Server) InitInternalTopics()
InitInternalTopics sets internal topics to server by default.
func (*Server) RemoveTopic ¶ added in v1.5.0
RemoveTopic remove the topic from internal mqtt broker.