我有一個 .Net/UWP 應用程式,我需要修改它以通過 AWS 上的 MQTT 發送狀態。我看到了很多關于如何使用其他語言發布/訂閱的例子,但是對于 .Net,我所找到的資訊似乎已經過時,不再適用了。
在.Net的AWSSDK中,是否有與AWSIotClient類(來自Java)相當的東西?是否有一些方法可以從.Net與AWS進行通信?
uj5u.com熱心網友回復:
遇到了同樣的問題,并且從未發現AWS官方發布的針對Iot Core的C# SDK,盡管你可以使用MQTTnet與AWS Iot Core通信。
以下是關于如何連接的片段:
var pfxCert = new X509Certificate2(X509Certificate2.CreateFromPemFile(pemCert,pemPrivKey).Export(X509ContentType.Pfx))。
var factory = new MqttFactory()。
var mqttClient = factory.CreateMqttClient()。
var options = new MqttClientOptionsBuilder()
.WithTcpServer(endpoint, 8883)
.WithClientId(clientId)
.WithCleanSession()
.WithCommunicationTimeout(TimeSpan.FromSeconds(60)
.WithTls(new MqttClientOptionsBuilderTlsParameters
{
UseTls = true,
SslProtocol = System.Security.Authentication.SslProtocols.Tls12,
IgnoreCertificateRevocationErrors = true,
IgnoreCertificateChainErrors = true,
AllowUntrustedCertificates = true,
Certificates = new List<X509Certificate>
{
pfxCert
}
})
.Build()。
await mqttClient.ConnectAsync(options, CancellationToken.None)。
要發送一條訊息:
var message = new MqttApplicationMessageBuilder()
.WithTopic(topic)
.WithPayload(jsonMessage)
.Build()。
var result = await _mqttClient.PublishAsync(message, CancellationToken.None)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/323091.html
標籤:
上一篇:函式只回傳輸入變數的第一個值
