在微信小游戏使用wss连接服务器,正常,然后打包android 原生平台,发现wss ,连接不成功,通过论坛百度等,发现2.x,new websocket 第三个参数要传入服务器证书,然后3.x版本,new websocket 只有两个参数,所以,,该咋办了,求回复,求解答。。。
自己导入socket包不就好了
没用过3.x,不过我觉得可以试试照2.x的传法,有可能只是ts提示的问题
我一直挺好奇的 WS在2.X里一直用着还行都,但总是听到3.X的有这样那样的问题 应该是WS在3.X里做了什么改动,所以一直觉得奇怪 这种东西 和2D3D有什么关系吗 以前一直稳定的稳定的模块 完全不用动的都,为什么要改呢, 也问官方 反正没给过解答
我试过了,还是没用,不是ts提示问题。
是啊,3.x 变动很大,有点坑的。
怎么导入啊?求指导啊。
就是找一份第三方的socket库,拖到cocos里面,然后选择导入为插件,就可以cocos里面使用了
你的意思,不用cocos的android 那个websocket.cpp吗?
resources.load(‘cert’, (err: any, res: TextAsset) => {
if (err) {
return;
}
const textData = res.text;
this.mWsSocket = new WebSocket(serverIp, null,textData);
})
这样传入参数是吧?
res.text 的值是空的,换成 res.nativeUrl试试
把证书放在resources目录下,Ioad得到的asset的nativeurl就是第三个参数了。
嗯,就是把证书放在resources目录下的,证书的后缀,需要改成.txt不,我改了下后缀,然后获取到的text有具体值,nativeUrl输出,发现是空字符串。。。
改成txt就没作用了,我改过。直接用原来的crt或pem就可以。
wss配置成不成功还是要用openssl测试一下。
第二参数用undefined,原生用nuⅠl好像会报错
看你的输出信息,证书并不完整。你要保证你服务器上的证书是完整的3层模式
设置下header?
传证书文件磁盘路径,底层(非引擎)会去读这个文件


