关于websocket无法连接的问题

今天是2020年4月17日,关于websocket的问题依旧存在。
用cocos creator开发,版本是2.3.2,最新的。
现象1:用浏览器预览一切正常
现象2:用自带的模拟器,websocket无法连接
现象3:打包成原生android app,在手机上websocket无法连接。我用的是华为mate30
ios和windows桌面的没试过。

在论坛里搜索过其他人遇到的情况,能解决问题的方式总结一下是两种:
1、说是那个什么鬼default_protocol,搞不懂,不会弄
2、说是传递证书什么的,我的是nginx服务器,阿里云里购买的证书,只提供了两个,没有看一什么car什么的文件。
更何况,在客户端读取证书发送的服务器进行认证也不科学吧?
因为:
1、证书可能会经常换,至少会1年换一次吧,那么到时客户端也一年换一次?
2、微信小程序什么的,根本也不需要证书就能正常访问啊!

希望官方出来说一句,我希望的方式,就是一句 let ws = new WebSocket(“wss://xxxx”);能搞定,而不是什么let ws = new WebSocket(“wss://xxxxx”,“xxx”,“xxxx”);

拜托了!

可以参考我的方案把android的ws实现换成java的开源库
查看这个帖子我的回复:websocket使用ssl链接不上服务器(已解决)

改动不多,因为是公司项目代码不能外传
另外附上我自己用的java的ws开源库Java-WebSocket

谢谢回复。
安卓的这样解决,那IOS也是这样解决吗

希望官方从根本上解决一下问题。
网络连接是最基本的功能吧。作为游戏,websocket连接方式很常用,为什么不能好好解决呢?

ios用的系统自带ws实现,本来就不用带证书

好的,谢谢@dayday:slightly_smiling:

还是希望官方出来说一下,从根本上解决 一下。你的那个回复贴没怎么看懂,我对java其实也不太熟悉,主要搞php的:joy:

我的服务器端是用php 的swoole搭建的

xi6.NET.ws = new WebSocket(xi6.websocket,[],cc.url.raw(“resources/thirteenyards.crt”));
[] 这里就是填写 default_protocol 必须和服务端一样 一般都是默认的 你那测试测试

[‘chat’]

$server->set([
‘websocket_subprotocol’ => ‘chat’,
]);