有没有比 AWSSDK.Iot 使用 C# 发布到 Aws Iot Core 更好的包?

Is there a better package to publish to Aws Iot Core than AWSSDK.Iot using C#?

我正在使用 C# 的 awssdk.iot nuget 包,但找不到发布方法。我找到了一种方法 Amazon.IoT.AmazonIoTClient(region).UpdateThing(UpdateThingRequest),在文档中说明它 "Updates the data for a thing."

https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TIoTClient.html

其中 Amazon.IoT.Model.UpdateThingRequest 具有属性 AttributePayload, ExpectedVersion, RemoveThingType, ThingName, ThingTypeName。但是,它没有任何我可以实际附加数据的属性。我可以发送属性负载,但这只会将属性附加到事物上。我查看了 UpdateStream 但它从 S3 文件更新了 iot。 有没有更好的 wat 发布?

using Amazon;

public static string Iot()
{
    var Region = RegionEndpoint.USEast1;
    Amazon.IoT.Model.UpdateThingResponse response;

    using (var client = new Amazon.IoT.AmazonIoTClient(region: Region))
    {

        var request = new Amazon.IoT.Model.UpdateThingRequest();
        request.ThingName = name;
        request.AttributePayload = new Amazon.IoT.Model.AttributePayload();
        request.AttributePayload.Attributes = new Dictionary<string, string>()
        {
            {"data","myvalue"}
        };
        response = client.UpdateThing(request);

    }
    return response.HttpStatusCode.ToString() ;
}

MQTT 发布消息使用 AmazonIotDataClient

发送

PublishPublishAsync 方法可用。

来自 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=IotData/MIotDataPublishAsyncPublishRequestCancellationToken.html&tocid=Amazon_IotData_AmazonIotDataClient PublishAsync 方法:

Initiates the asynchronous execution of the Publish operation.

其中使用 PublishRequest 类型。这有负载、QoS 和主题字段。