微信小程序访问自搭建mqtt服务器异常

微信小程序连接不上自己搭建的mqtt服务器,但是其他标准软件可以。

自己搭建的服务器用标准的mqtt客户端测试是可以连接成功的。

img

img

但是用微信小程序就连接不上:

img

经过测试,小程序里这段代码应该没问题,因为我可以用这段代码连接到其他免费的标准服务器:

img

连接不上是服务器的问题,可以连接其他标准服务器,是因为其他服务器是开放的。
检查一下你服务器的协议是否启动了,百度具体流程。

自建的mqtt服务器开启了wss协议吗?我看你用其他客户端是用的mqtt协议啊

端口协议没开放,需要开放下

【相关推荐】



  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7560490
  • 你也可以参考下这篇文章:MQTT主题通配符
  • 您还可以看一下 穆师兄老师的物联网基础篇:快速玩转MQTT课程中的 课程导学小节, 巩固相关知识点
  • 除此之外, 这篇博客: C#MQTTNET服务端使用说明中的 3.我想知道MQTT服务器是否停止允许,我该怎么做? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
     server.StoppedHandler = new MqttServerStoppedHandlerDelegate(StoppedHandler);
      /// <summary>
      /// MQTT服务器停止事件
      /// </summary>
      /// <param name="obj"></param>
      private void StoppedHandler(EventArgs obj)
      {
        Console.WriteLine("程序已经关闭");
      }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

开启协议

在小程序后台好像需要添加对应的 协议和端口,去小程序官网文档里面找找。

mqtt服务器的端口号或协议不符合微信小程序的要求


微信小程序连接MQTT,开发者工具可以连接成功,真机测试不行? | 微信开放社区 引用的mqtt是4.0版本的。我看交流区里也有很多这样的问题,有没有解决的,帮忙看看、开发者工具下可以收到mqtt的信息,下图真机测试下,连接不上服务器了。。下图 https://developers.weixin.qq.com/community/develop/doc/00044a459c8220eb209c23d915a400?_at=1692150364005

应该协议或者证书方面的问题,微信小程序对mqtt协议的实现与标准不完全一致,可能存在一些限制或特定的要求,需要仔细阅读微信小程序的开发文档,了解其对于mqtt连接的具体要求和限制。

https://blog.csdn.net/weixin_44066951/article/details/131260324
我推荐你看看这篇博客

微信小程序不是 https 协议吗 ?

微信小程序真机调试连接mqtt失败原因及修复(EMQX客户端) 原创
可以参考下


微信小程序mqtt真机失败原因分析_小程序mqtt开发环境可以 体验版链接不上_Dnils的博客-CSDN博客 前言文章写于2021年11月…或许微信已经修复了这个bug?这个bug只出现于安卓端,ios没有问题。正文配置部署好证书之后,在面板可以成功连接但是真机不能连通。微信平台里设置了相关服务器域名,在本地校验合法域名也能成功连接。说明部署的证书有效。说明问题出在了调试和真机有人说调试和真机的请求头里的type不一样到时调试失败,但是真机可以。直接上传就可以成功。还有的说是mqtt.js库的版本问题。但是我的问题不是出在这里。经过查阅相关资料:https://developers.weix_小程序mqtt开发环境可以 体验版链接不上 https://blog.csdn.net/weixin_45654405/article/details/124001630

参考gpt

  1. 网络问题:请确保微信小程序可以访问您的MQTT服务器。检查网络设置、防火墙配置以及路由器设置,确保微信小程序可以与服务器进行通信。

  2. 安全性设置:如果您的MQTT服务器有安全性设置,例如用户名和密码认证,TLS/SSL加密等,请确保您的微信小程序正确配置了这些设置。您需要在微信小程序中提供正确的用户名和密码,以及正确的TLS/SSL证书。

  3. 协议和端口:确保微信小程序使用正确的MQTT协议和端口来连接您的服务器。MQTT通常使用TCP协议,默认端口为1883(未加密)或8883(加密)。请确保微信小程序使用正确的协议和端口进行连接。

  4. 代码问题:检查您的微信小程序代码是否正确配置了MQTT连接参数,例如服务器地址、端口、用户名、密码等。确保代码中没有错误或拼写错误。

如果您仍然无法解决问题,建议您通过以下方式进一步调试和排查:

  1. 在微信小程序中打印日志:使用微信小程序的开发者工具,在代码中添加日志输出,以便查看连接过程中的错误信息。

  2. 使用抓包工具:使用网络抓包工具(如Wireshark)来捕获微信小程序与服务器之间的通信流量,以检查是否有任何异常或错误。

  3. 参考官方文档和示例代码:查阅微信小程序和MQTT相关的官方文档和示例代码,以确保您的代码和配置是正确的。