【发布时间】:2019-04-08 13:53:13
【问题描述】:
我正在使用 MQTTnet 库连接到需要服务器证书的 MQTT 服务器。不需要客户端。
正如我在其他帖子中找到的那样,我已经在我的 PC 中安装了证书,并创建了 .pfx 文件来创建证书,但程序没有给我任何错误..它根本没有连接到主题。
这是我的示例代码
//Create a new MQTT client
var factory = new MqttFactory();
var mqttClient = factory.CreateMqttClient();
var caCert = new X509Certificate(@"C:\caserverroot.pfx", "mypsw");
var url = "mymqtt.com";
var username = "user";
var psw = "user";
var port = 8885;
var options = new MqttClientOptionsBuilder()
.WithClientId(Guid.NewGuid().ToString())
.WithTcpServer(url, port)
.WithCredentials(username, psw)
.WithTls(new MqttClientOptionsBuilderTlsParameters()
{
AllowUntrustedCertificates = true,
UseTls = true,
Certificates = new List<byte[]> { new X509Certificate2(caCert).Export(X509ContentType.Cert) },
CertificateValidationCallback = delegate { return true; },
IgnoreCertificateChainErrors = false,
IgnoreCertificateRevocationErrors = false
})
.WithCleanSession()
.WithProtocolVersion(MQTTnet.Serializer.MqttProtocolVersion.V311)
.Build();
// Connecting
var result = await mqttClient.ConnectAsync(options);
//订阅一个主题
mqttClient.Connected += async (s, e) =>
{
Console.WriteLine("### CONNECTED WITH SERVER ###");
await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic("/mytopic").Build());
Console.WriteLine("### SUBSCRIBED ###");
};
我在这里找到的所有其他事件:https://github.com/chkr1011/MQTTnet/wiki/Client
你们中有人对这个图书馆有过经验吗?如何调试并发现错误?
谢谢
【问题讨论】:
标签: c# certificate client mqtt