From 62da2476e067edfe3d9c9e7b942c954eb867ce57 Mon Sep 17 00:00:00 2001 From: ridomin Date: Fri, 30 Sep 2022 17:42:07 -0700 Subject: [PATCH] fix update reported with ack --- .../TwinRequestResponseBinder.cs | 9 +++++++-- .../WritableProperty.cs | 2 +- .../Binders/CloudToDeviceBinder.cs | 2 +- .../HubClient/HubWritablePropertyUTFJsonFixture.cs | 6 +++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/TwinRequestResponseBinder.cs b/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/TwinRequestResponseBinder.cs index 7622874..338313a 100644 --- a/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/TwinRequestResponseBinder.cs +++ b/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/TwinRequestResponseBinder.cs @@ -37,8 +37,8 @@ public TwinRequestResponseBinder(IMqttClient connection) { Trace.TraceWarning($"GetTwinBinder: RID {rid} not found pending requests"); } - } - if (topic.StartsWith("$iothub/twin/res/204")) + } + else if (topic.StartsWith("$iothub/twin/res/204")) { string msg = Encoding.UTF8.GetString(m.ApplicationMessage.Payload ?? new byte[0]); (int rid, int version) = TopicParser.ParseTopic(topic); @@ -52,6 +52,11 @@ public TwinRequestResponseBinder(IMqttClient connection) Trace.TraceWarning($"UpdateTwinBinder: RID {rid} not found pending requests"); } } + else if (topic.StartsWith("$iothub/twin/res")) + { + Trace.TraceWarning("topic: " + m.ApplicationMessage.Topic); + Trace.TraceWarning("msg : " + Encoding.UTF8.GetString(m.ApplicationMessage.Payload!)); + } }; } diff --git a/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/WritableProperty.cs b/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/WritableProperty.cs index 48384ab..944a568 100644 --- a/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/WritableProperty.cs +++ b/src/MQTTnet.Extensions.MultiCloud.AzureIoTClient/WritableProperty.cs @@ -16,7 +16,7 @@ public WritableProperty(IMqttClient c, string name) _name = name; _connection = c; TopicTemplate = "$iothub/twin/PATCH/properties/desired/#"; - ResponseTopic = "$iothub/twin/PATCH/properties/reported/?$rid={rid}&$version={version}"; + ResponseTopic = "$iothub/twin/PATCH/properties/reported/?$rid={rid}"; UnwrapRequest = true; WrapResponse = true; PreProcessMessage = tp => diff --git a/src/MQTTnet.Extensions.MultiCloud/Binders/CloudToDeviceBinder.cs b/src/MQTTnet.Extensions.MultiCloud/Binders/CloudToDeviceBinder.cs index be33fc5..1a7d4fd 100644 --- a/src/MQTTnet.Extensions.MultiCloud/Binders/CloudToDeviceBinder.cs +++ b/src/MQTTnet.Extensions.MultiCloud/Binders/CloudToDeviceBinder.cs @@ -57,7 +57,7 @@ public CloudToDeviceBinder(IMqttClient connection, string name, IMessageSerializ .WithPayload(responseBytes) .WithQualityOfServiceLevel(MqttQualityOfServiceLevel.AtLeastOnce) .WithRetainFlag(RetainResponse) - .WithPayloadFormatIndicator(serializer is UTF8JsonSerializer ? MqttPayloadFormatIndicator.CharacterData : MqttPayloadFormatIndicator.Unspecified) + //.WithPayloadFormatIndicator(serializer is UTF8JsonSerializer ? MqttPayloadFormatIndicator.CharacterData : MqttPayloadFormatIndicator.Unspecified) .Build()); } else diff --git a/tests/MQTTnet.Extensions.MultiCloud.UnitTests/HubClient/HubWritablePropertyUTFJsonFixture.cs b/tests/MQTTnet.Extensions.MultiCloud.UnitTests/HubClient/HubWritablePropertyUTFJsonFixture.cs index 6e803a5..6d75268 100644 --- a/tests/MQTTnet.Extensions.MultiCloud.UnitTests/HubClient/HubWritablePropertyUTFJsonFixture.cs +++ b/tests/MQTTnet.Extensions.MultiCloud.UnitTests/HubClient/HubWritablePropertyUTFJsonFixture.cs @@ -34,7 +34,7 @@ public void DesiredPropGetsTriggeredAndIsReportedBackWithAck() }; mqttClient.SimulateNewMessage("$iothub/twin/PATCH/properties/desired/?$rid=1&$version=3", Stringify(desiredMsg)); - Assert.StartsWith($"$iothub/twin/PATCH/properties/reported/?$rid=1&$version=3", mqttClient.topicRecceived); + Assert.StartsWith($"$iothub/twin/PATCH/properties/reported/?$rid=1", mqttClient.topicRecceived); var expected = Stringify(new { @@ -75,7 +75,7 @@ public void ReceiveWPWithVersion() Assert.True(propReceived); Assert.Equal(4, wp.Version); Assert.Equal("string value", wp.Value); - Assert.Equal($"$iothub/twin/PATCH/properties/reported/?$rid=1&$version=3", mockMqtt.topicRecceived); + Assert.Equal($"$iothub/twin/PATCH/properties/reported/?$rid=1", mockMqtt.topicRecceived); Assert.Equal("{\"aStringProp\":{\"av\":4,\"ac\":200,\"value\":\"string value\"}}", mockMqtt.payloadReceived); propReceived = false; @@ -84,7 +84,7 @@ public void ReceiveWPWithVersion() Assert.True(propReceived); Assert.Equal(5, wp.Version); Assert.Equal("second string value", wp.Value); - Assert.Equal($"$iothub/twin/PATCH/properties/reported/?$rid=1&$version=4", mockMqtt.topicRecceived); + Assert.Equal($"$iothub/twin/PATCH/properties/reported/?$rid=1", mockMqtt.topicRecceived); Assert.Equal("{\"aStringProp\":{\"av\":5,\"ac\":200,\"value\":\"second string value\"}}", mockMqtt.payloadReceived);