急急急,cocos,websocket在android7.0,华为手机无法连接,模拟器和浏览器正常

我也用的ws和wss,荣耀v8,也是android7.0,局域网测试没问题啊
服务器是go

你可以尝试下,把APP ABI多勾选几个试一下,我现在就是这么做的~

这个问题确实存在,安卓7.0 在我们cocos用websocket 然后打包发布安卓版本后,无法连接,估计有两种可能,一种是握手不成功,一种是websocket没有被成功的运行,希望大大可以解决下这个问题

这个问题确实存在,安卓7.0 在我们cocos用websocket 然后打包发布安卓版本后,无法连接,估计有两种可能,一种是握手不成功,一种是websocket没有被成功的运行,希望大大可以解决下这个问题。

Creator 什么版本,在 Android 7.0 的什么机型有问题,Android 的其它版本就没问题么,官方的测试项目中的 websocket 用例在同样的条件下是否正常。

希望尽可能多的提供一些线索,至少能达到按照你描述的条件,可以复现问题


补充:其它开发者发现的解决方式

http://forum.cocos.com/t/cocoscreator-1-6-1-android-7-0-websocket/51740/30?u=2627993092

我也遇到了,发布的h5 游戏, 在ios的浏览器正常,pc正常, 在安卓上就连接不上带证书的https wss

解决了没

应该很难解决,是websocket库底层的问题

还有socketIO库重连,也不稳定。。在不同机型下会很奇葩

关键是没有任何报错,单纯connect后就没反应了,包没有发出去

为此专门买了几个有问题的机型。但是同样的机型,安卓版本不一样,有的居然是正常的

如果只做原生项目真不该选择 creator

几乎都是安卓5.0, 安卓7.0的机器有问题。。。华为的问题最多,也可能因为华为的用户最多吧

同样遇到过,我用protobuff.js,服务器收不到链接,websocket没反应,1.9.3,华为尤其多,不知道现在解决了还有这个问题,哎,懒得研究了

这种问题跟不是啥渲染问题,估计是大小端什么的,没真机,单纯猜测

我之前遇到过使用wss,无法在android上跑,那是因为,可能游览器自带各种根证书,但是android上没有证书,所有无法连接。需要手动把证书放到项目里就行了。

这边出现了一个,暂时是只有荣耀手机出现的,荣耀8.9微信小游戏,ccc2.0.9,在特定wifi下websocket会无法创建连接,4g网跟以前的wifi都是好的,在建立连接的过程中会告诉我timeout,然后主动调了close,错误码是1000,服务器是完全没收到链接的,同时部分别的小游戏也会无法进入。。不知道是因为什么原因

微信BUG。 7.0.1搞过一次, 现在 708 709还有。。。官方又不解决,只能望着
主要是华为机型有问题,广告里最闪亮的华为P30铁定连不上
微信论坛有多人反馈。。。只能登官方

但是4g网跟某一个wifi又是好的,官方回复我说是网络本身的问题。。。

在模拟器和android上都没法连接成功,官方用例也是同样没成功

就是带个证书就可以了,类似这样

if (cc.sys.platform === cc.sys.Platform.ANDROID) {
            // @ts-ignore
            this.ws = new WebSocket(url, null, caURL);
        }
        else {
            this.ws = new WebSocket(url);
        }

类似 Android Websocket 连接 wss 需要证书?

1赞

你非常感谢你的解答。
我这边的情况是这样的,我本地自己开的内网服务器可以访问成功,但是我们服务器提供给我的可以外网访问的服务器,在原生上无法访问成功,但是在手机的web版本可以成功,不知道您是否有这方面的经验

只遇到过证书问题,其它一样。找不到原因就用android studio看看debug日志,调试一下连接过程,看看具体的报错,再分析。

好的,感谢