问题描述:
使用官方websocketAPI后,在ios手机上运行没有问题,但是在部分安卓手机上websocket无法连接。
部分机型:
在OPPO和vivo机型上尤为严重,包括: vivo y55 安卓6.0.1,以及华为荣耀6X 安卓8.0.0.
还包括魅族、华为手机使用的是安卓5.0.1 安卓5.1.0
现象描述:
wx.connectSocket({
url: url,
method: 'GET',
success: function () {
console.log("连接成功...")
},
fail: function () {
console.log("连接失败...")
}
})
在后台检测查看后发现,连接后走了“连接成功”,但是过了大约60秒后,提示:连接超时。没有走到
wx.onSocketOpen()中。
就这个 case 而言,是因为证书链不完整导致。具体可看 https://myssl.com/szghlc.com?status=q&port=5001 ,对比之下,这个域名默认端口的证书链是完整的 https://myssl.com/szghlc.com?status=q 。至于只有在 Android 有这个问题,原因未明。
另外一方面有个 bug 是没有回调证书错误,而是等到 60s 后回调超时,会跟最近版本修复。
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
代码片段就是根据官网文档写的,微信版本是最新的7.0.4。手机的话问题比较多的是vivo和oppo只做了这方便的统计,安卓系统是5 6 7都会有相关的问题出现。
https://developers.weixin.qq.com/s/jUu5Q1m77497 代码片段链接
我用js的方式写了一个socket链接,地址和小程序上的链接地址一样。然后测试手机去访问后,可以连接和传输数据都是正常的,然后东西用小程序真机调试则是不行。
测试了下,没发复现,这边先看下
嗯。方法的话。使用那个片段的代码,小程序运行,然后真机调试,建议使用5.0的安卓系统的手机调试(oppo和vivo是重灾区),然后在控制台即可打印看到。状态有:正在连接... 、websocket连接已打开和超时后的信息。后台已经看到连接上去了,但是小程序这边还是返回超时。