c# - 连接问题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 也是如此。
解决方案
推荐阅读
- python - Python linter 警告:签名与基本方法不匹配
- vue.js - Vuejs中未刷新字段
- python - Django文件上传为不同的用户
- php - Laravel Eloquent sum on realtions
- datastax - 为 Apache TinkerPop 的 Spark-Gremlin 指定工作池 - DataStax-Enterprise Graph-Analytics
- json - 如何将此复杂 Json 转换为 Dart 对象
- java - 发送列表
从一项服务到另一项服务给出“当前请求不是多部分请求”异常 - javascript - 对于后续迭代中的循环跳过变量声明
- loopback4 - loopback 4.0 是否曾经并行运行查询?
- javascript - javascript。innerHTML 清除内容已推送到数组