|
|
|
@ -80,7 +80,8 @@ public class DeviceSessionCtx extends MqttDeviceAwareSessionContext { |
|
|
|
private MqttVersion mqttVersion; |
|
|
|
|
|
|
|
private volatile MqttTopicFilter telemetryTopicFilter = MqttTopicFilterFactory.getDefaultTelemetryFilter(); |
|
|
|
private volatile MqttTopicFilter attributesTopicFilter = MqttTopicFilterFactory.getDefaultAttributesFilter(); |
|
|
|
private volatile MqttTopicFilter attributesPublishTopicFilter = MqttTopicFilterFactory.getDefaultAttributesFilter(); |
|
|
|
private volatile MqttTopicFilter attributesSubscribeTopicFilter = MqttTopicFilterFactory.getDefaultAttributesFilter(); |
|
|
|
private volatile TransportPayloadType payloadType = TransportPayloadType.JSON; |
|
|
|
private volatile Descriptors.Descriptor attributesDynamicMessageDescriptor; |
|
|
|
private volatile Descriptors.Descriptor telemetryDynamicMessageDescriptor; |
|
|
|
@ -110,7 +111,11 @@ public class DeviceSessionCtx extends MqttDeviceAwareSessionContext { |
|
|
|
} |
|
|
|
|
|
|
|
public boolean isDeviceAttributesTopic(String topicName) { |
|
|
|
return attributesTopicFilter.filter(topicName); |
|
|
|
return attributesPublishTopicFilter.filter(topicName); |
|
|
|
} |
|
|
|
|
|
|
|
public boolean isDeviceSubscriptionAttributesTopic(String topicName) { |
|
|
|
return attributesSubscribeTopicFilter.filter(topicName); |
|
|
|
} |
|
|
|
|
|
|
|
public MqttTransportAdaptor getPayloadAdaptor() { |
|
|
|
@ -161,7 +166,8 @@ public class DeviceSessionCtx extends MqttDeviceAwareSessionContext { |
|
|
|
TransportPayloadTypeConfiguration transportPayloadTypeConfiguration = mqttConfig.getTransportPayloadTypeConfiguration(); |
|
|
|
payloadType = transportPayloadTypeConfiguration.getTransportPayloadType(); |
|
|
|
telemetryTopicFilter = MqttTopicFilterFactory.toFilter(mqttConfig.getDeviceTelemetryTopic()); |
|
|
|
attributesTopicFilter = MqttTopicFilterFactory.toFilter(mqttConfig.getDeviceAttributesTopic()); |
|
|
|
attributesPublishTopicFilter = MqttTopicFilterFactory.toFilter(mqttConfig.getDeviceAttributesTopic()); |
|
|
|
attributesSubscribeTopicFilter = MqttTopicFilterFactory.toFilter(mqttConfig.getDeviceAttributesSubscribeTopic()); |
|
|
|
sendAckOnValidationException = mqttConfig.isSendAckOnValidationException(); |
|
|
|
if (TransportPayloadType.PROTOBUF.equals(payloadType)) { |
|
|
|
ProtoTransportPayloadConfiguration protoTransportPayloadConfig = (ProtoTransportPayloadConfiguration) transportPayloadTypeConfiguration; |
|
|
|
@ -171,7 +177,7 @@ public class DeviceSessionCtx extends MqttDeviceAwareSessionContext { |
|
|
|
} |
|
|
|
} else { |
|
|
|
telemetryTopicFilter = MqttTopicFilterFactory.getDefaultTelemetryFilter(); |
|
|
|
attributesTopicFilter = MqttTopicFilterFactory.getDefaultAttributesFilter(); |
|
|
|
attributesPublishTopicFilter = MqttTopicFilterFactory.getDefaultAttributesFilter(); |
|
|
|
payloadType = TransportPayloadType.JSON; |
|
|
|
sendAckOnValidationException = false; |
|
|
|
} |
|
|
|
|