我尝试使用MQTTnet连接mqtt。
但似乎不起作用,它将显示错误信息:
无法连接远程服务器,请求被中止:无法创建SSL/TLS安全通道.
我还在windows事件上找到了错误消息:
从远程端点收到致命警报。TLS协议定义的致命警报代码为40。
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Connecting;
using MQTTnet.Client.Options;
public override void Run()
{
var option = new MqttClientOptionsBuilder()
.WithWebSocketServer("wss://mymqttserver:443")
.WithClientId(Guid.NewGuid().ToString())
.WithTls(new MqttClientOptionsBuilderTlsParameters()
{
AllowUntrustedCertificates = true,
UseTls = true,
SslProtocol = SslProtocols.Tls12,
CertificateValidationCallback = delegate { return true; },
})
.WithCleanSession()
.Build();
var mqtt = new MqttFactory().CreateMqttClient() as MqttClient;
mqtt.ConnectAsync(option).Wait();
string convertMsg = JsonConvert.SerializeObject("Mqtt Connect Successfully!!");
var appMsg = new MqttApplicationMessage();
appMsg.Payload = Encoding.UTF8.GetBytes(convertMsg);
appMsg.Topic = "myTopic";
appMsg.QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce;
appMsg.Retain = false;
mqttClient.PublishAsync(appMsg).Wait();
}
我还尝试将我的mqtt服务器连接到第三方应用程序。
它可以成功地连接,所以我的mqtt服务器应该没问题。
但我不知道为什么我不能使用c#连接。
发布于 2022-02-11 12:52:50
排在队伍里
.WithWebSocketServer("wss://mymqttserver:443")
您必须删除"wss://“,因为它已经使用".WithWebSocketServer”方法指定了。所以,你应该
.WithWebSocketServer("mymqttserver:443")
只需使用服务器和端口即可。
https://stackoverflow.com/questions/70378748
复制相似问题