Files
PandaX/iothub/server/emqxserver/const.go
2023-09-26 18:05:47 +08:00

49 lines
1.2 KiB
Go

package emqxserver
import (
"pandax/pkg/rule_engine/message"
"strings"
)
const (
// Topic 上行
RowTopic = `v1/devices/me/row`
TelemetryTopic = `v1/devices/me/telemetry`
AttributesTopic = `v1/devices/me/attributes`
//网关子设备
AttributesGatewayTopic = "v1/gateway/attributes"
TelemetryGatewayTopic = "v1/gateway/telemetry"
ConnectGatewayTopic = "v1/gateway/connect"
DisconnectGatewayTopic = "v1/gateway/disconnect"
RpcReqReg = `v1/devices/me/rpc/request/(.*?)$`
)
var IotHubTopic = NewIotHubTopic()
type TopicMeg map[string]string
// 消息的来源类型
func NewIotHubTopic() TopicMeg {
return map[string]string{
AttributesTopic: message.AttributesMes,
RowTopic: message.RowMes,
TelemetryTopic: message.TelemetryMes,
AttributesGatewayTopic: message.GATEWAY,
TelemetryGatewayTopic: message.GATEWAY,
ConnectGatewayTopic: message.GATEWAY,
DisconnectGatewayTopic: message.GATEWAY,
}
}
func (iht TopicMeg) GetMessageType(topic string) string {
if meg, ok := iht[topic]; ok {
return meg
}
if strings.Contains(topic, "v1/devices/me/rpc/request") {
return message.RpcRequestMes
}
return ""
}