首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在c#中连接mqtt和websocket?

如何在c#中连接mqtt和websocket?
EN

Stack Overflow用户
提问于 2021-12-16 12:05:59
回答 1查看 1.1K关注 0票数 0

我尝试使用MQTTnet连接mqtt。

但似乎不起作用,它将显示错误信息:

无法连接远程服务器,请求被中止:无法创建SSL/TLS安全通道.

我还在windows事件上找到了错误消息:

从远程端点收到致命警报。TLS协议定义的致命警报代码为40。

代码语言:javascript
运行
复制
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#连接。

EN

回答 1

Stack Overflow用户

发布于 2022-02-11 12:52:50

排在队伍里

代码语言:javascript
运行
复制
    .WithWebSocketServer("wss://mymqttserver:443")

您必须删除"wss://“,因为它已经使用".WithWebSocketServer”方法指定了。所以,你应该

代码语言:javascript
运行
复制
   .WithWebSocketServer("mymqttserver:443")

只需使用服务器和端口即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70378748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档