You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WebAssembly中MQTT over WebSocket异常,强制用WSS报错

Blazor中使用Paho实现MQTT over WebSocket时强制使用WSS的问题

我尝试在Blazor中用Paho实现MQTT over WebSocket客户端订阅者,但连接时系统强制使用WSS而非WS,抛出ERR_SSL_PROTOCOL_ERROR错误。

简化代码块

var mqtt;
var host = "api.mydomainexample.com";
var port = 1884;
function onConnect(){
   console.log("connected ! Now listening for messages ..");
   mqtt.subscribe("someTopic");
}

function onFailure(message){
   console.log("connection to host failed: " + message);
}

function onMessageArrived(msg){
   var message = "Message received on topic '"+ msg.destinationName +"': "+ msg.payloadString;
   console.log(message);
}

function mqttConnect() {
   console.log("connecting to " + host + " ..");
   mqtt = new Paho.MQTT.Client(host, port, clientid);
   var options = {
       timeout: 3,
       onSuccess: onConnect,
       onFailure: onFailure,
       useSSL: false
   };
   mqtt.onMessageArrived = onMessageArrived;
   mqtt.connect(options);
}

测试情况

将这段代码复制到记事本创建的HTML页面中,调用函数后在浏览器运行正常,能成功订阅。我已在连接选项中添加useSSL: false,但问题仍未解决。

控制台报错信息

WebSocket connection to 'wss://api.mydomainexample:1884/mqtt' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR

已尝试的操作

修改了项目启动设置,将启动方式改为HTTP而非HTTPS,因为根据相关解答,无法从HTTPS加载的页面使用WS连接。

疑问

请问有什么解决办法?能否在Blazor中无需证书连接WebSocket?


解决方案

  • 修正Blazor启动配置:检查Properties/launchSettings.json文件,确保applicationUrl只保留HTTP地址,移除sslPort配置项,同时将environmentVariables中的ASPNETCORE_ENVIRONMENT设为Development,避免生产环境的强制HTTPS跳转逻辑生效。
  • 显式指定WS协议地址:创建Paho客户端时,直接传入完整的WS协议地址,替代单独传入host和port的方式,强制客户端使用WS而非自动切换到WSS:
    // 替换原客户端初始化代码
    mqtt = new Paho.MQTT.Client("ws://api.mydomainexample.com:1884/mqtt", clientid);
    
  • 清除浏览器HSTS缓存:部分浏览器会因HSTS配置自动将HTTP请求升级为HTTPS,可在浏览器开发者工具的「Security」标签页检查相关提示,若存在HSTS记录,可在浏览器对应设置中删除目标域名的HSTS缓存(比如Chrome可访问chrome://net-internals/#hsts操作)。
  • 验证MQTT Broker配置:确认你的MQTT Broker(如EMQX、Mosquitto)已在1884端口开启非SSL的WebSocket监听,无强制SSL要求。可使用wscat工具测试连接:wscat -c ws://api.mydomainexample.com:1884/mqtt,确认Broker能正常响应WS连接。

内容的提问来源于stack exchange,提问作者NadaNK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:27:28