首页 > 解决方案 > 连接问题iot aws mqttclient .net c#

问题描述

我与客户端M2Mqtt有连接问题。我尝试以这种方式连接到我的物联网事物:

var caCert = X509Certificate.CreateFromCertFile(@"C:\DiscoD\MqttRuleDefault\root.crt");
var clientCert = new X509Certificate2(@"C:\DiscoD\MqttRuleDefault\xxxx-certificate.crt");

string path = @"C:\DiscoD\MqttRuleDefault\xxxxx-private.pem.key";
string privateKey = this.GetStringFromFile(path);
byte[] keyBuffer = Helpers.GetBytesFromPEM(privateKey, PemStringType.RsaPrivateKey);    

RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer);
clientCert.PrivateKey = prov;

Console.WriteLine(clientCert.HasPrivateKey);

Console.WriteLine(clientCert.Issuer);
Console.WriteLine(clientCert.Verify());

RemoteCertificateValidationCallback cb = new RemoteCertificateValidationCallback(Pippo);
LocalCertificateSelectionCallback lcb = new LocalCertificateSelectionCallback(Pippo1);

var client = new MqttClient("yyyyy-ats.iot.us-west-2.amazonaws.com"
                            ,443
                            ,true
                            ,caCert
                            ,clientCert
                            ,MqttSslProtocols.TLSv1_2
                            ,cb
                            ,lcb
                            ,new List<string>() { "x-amzn-mqtt-ca" });

string clientId = Guid.NewGuid().ToString();
client.ConnectionClosed += Client_ConnectionClosed;
client.MqttMsgPublished += Client_MqttMsgPublished;
client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;
client.MqttMsgSubscribed += Client_MqttMsgSubscribed;
client.MqttMsgUnsubscribed += Client_MqttMsgUnsubscribed; 

client.Connect(clientId);

但是Connax的留言不到。奇怪的是,具有相同字段的 Python 脚本设置正确连接,对于 awsIotClient 也是如此。

标签: c#amazon-web-servicesiot

解决方案


推荐阅读