提交 d77d7848 编写于 作者: 麦壳饼's avatar 麦壳饼

当playload 为空时不再报错, 也不再发送空对象。

上级 ad7b63cf
......@@ -273,7 +273,7 @@ namespace IoTSharp.Extensions
}
public static Dictionary<string, object> ConvertPayloadToDictionary(this MqttApplicationMessage msg)
{
return JToken.Parse(msg.ConvertPayloadToString())?.JsonToDictionary();
return JToken.Parse(msg.ConvertPayloadToString()??"{}")?.JsonToDictionary();
}
public static Dictionary<string, object> JsonToDictionary(this JToken jojb)
......
......@@ -120,7 +120,10 @@ namespace IoTSharp.Handlers
{
try
{
keyValues = e.ApplicationMessage.ConvertPayloadToDictionary();
if (e.ApplicationMessage.Payload?.Length > 0)
{
keyValues = e.ApplicationMessage.ConvertPayloadToDictionary();
}
}
catch (Exception ex)
{
......@@ -129,17 +132,31 @@ namespace IoTSharp.Handlers
}
if (tpary[2] == "telemetry")
{
_queue.PublishTelemetryData(new PlayloadData() { DeviceId = device.Id, MsgBody = keyValues, DataSide = DataSide.ClientSide, DataCatalog = DataCatalog.TelemetryData });
if (keyValues.Count > 0)
{
_queue.PublishTelemetryData(new PlayloadData() { DeviceId = device.Id, MsgBody = keyValues, DataSide = DataSide.ClientSide, DataCatalog = DataCatalog.TelemetryData });
}
else
{
_logger.LogWarning( $"空的遥测数据 {topic}, ClientId:{e.ClientId}");
}
}
else if (tpary[2] == "attributes")
{
if (tpary.Length > 3 && tpary[3] == "request")
if (keyValues.Count > 0)
{
await RequestAttributes(tpary, clientid, e.ApplicationMessage.ConvertPayloadToDictionary(), device);
if (tpary.Length > 3 && tpary[3] == "request")
{
await RequestAttributes(tpary, clientid, e.ApplicationMessage.ConvertPayloadToDictionary(), device);
}
else
{
_queue.PublishAttributeData(new PlayloadData() { DeviceId = device.Id, MsgBody = keyValues, DataSide = DataSide.ClientSide, DataCatalog = DataCatalog.AttributeData });
}
}
else
{
_queue.PublishAttributeData(new PlayloadData() { DeviceId = device.Id, MsgBody = keyValues, DataSide = DataSide.ClientSide, DataCatalog = DataCatalog.AttributeData });
_logger.LogWarning($"空的属性数据 {topic}, ClientId:{e.ClientId}");
}
}
else if (tpary[2] == "status" )
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册