搞了2个多小时总算搞定了:
注意:(证书在百度上有在线转换,可以把你当前的证书转换成pem格式的,然后走下面的教程)
【然后我们开始第一大步骤 导出一个base64的cer证书】
根据网站xxx.pem获取安卓websocket所需的根证书的方法
- 第一步,打开window操作系统 (mac下面不知道怎么导出证书)
- 第二部, 将网站证书xxxx.pem更名为xxx.cer
- 第三部, 双击xxx.cer
- 选择[证书路径]选项卡
- 鼠标点击下方证书树的根节点
- 鼠标点击下方查看证书按钮
- 点击[证书详情]选项卡
- 点击[导出证书] (此处win10显示的不是导出证书字样,一共2个按钮 试一试就知道了 具体我忘了,点击后是导出向导)
- 选择 base64模式导出的文件就是 安卓Websocket第三个参数所需的文件
【第二大步骤】
var pemUrl = cc.url.raw(‘resources/ssl/android.cer’)
if(cc.loader.md5Pipe) {
pemUrl = cc.loader.md5Pipe.transformURL(pemUrl)
console.log(pemUrl)
window.ws = new WebSocket(url, null, pemUrl);
} else {
cc.log(‘cc.loader.md5Pipe:’, cc.loader.md5Pipe)
}
【异常1】:
cc.loader.md5Pipe
这个可能是空的需要判断一下 导出android版的时候勾选MD5Cache后,这个值就不是空的了
【异常2】:
new WebSocket(url, null, pemUrl); 本身第三个参数可能会报错,不用管尤其是 typescript下
【注意】
一定要编译成android版后在运行测试
其它平台需要单独判断下,要不然会报错