CocosCreator中WebSocket使用WSS协议

本文详细介绍了如何将WebSocket协议升级为更安全的WSS协议,特别是在原生端(iOS或Android)上遇到的问题及解决方案。通过加载服务器提供的证书文件,实现从ws到wss的安全连接转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平常我们使用WebSocket协议是这样的:

 var ws = new WebSocket("ws://echo.websocket.org");
 ws.onopen = function (event) {
     console.log("Send Text WS was opened.");
 };
 ws.onmessage = function (event) {
     console.log("response text msg: " + event.data);
 };
 ws.onerror = function (event) {
     console.log("Send Text fired an error");
 };
 ws.onclose = function (event) {
     console.log("WebSocket instance closed.");
 };

一个简洁有力的示例。

但是,有些地方可能会被强制要求把ws协议改成wss协议,如:需要发布到微信小游戏平台的时候。

即需要把服务器的地址:

ws://echo.websocket.org

修改为:

wss://echo.websocket.org

如果像这样,只是简单直接的修改url,是可以在网页端调用成功的。

但是在原生端(iOS或Android),仅仅把ws修改成wss是会报错的。

 

这时,我们需要找服务器的同学拿一个证书文件过来,类似于***.cer的文件,然后我们再把文件放在resources文件夹下。

再把代码修改成:

 var ws = new WebSocket("wss://echo.websocket.org", "test", cc.url.raw("resources/***.cer"));
 ws.onopen = function (event) {
     console.log("Send Text WS was opened.");
 };
 ws.onmessage = function (event) {
     console.log("response text msg: " + event.data);
 };
 ws.onerror = function (event) {
     console.log("Send Text fired an error");
 };
 ws.onclose = function (event) {
     console.log("WebSocket instance closed.");
 };

其中第二个参数"test",是可以自定义的参数,一般可以设置自己的项目名;

第三个参数才是我们要加载的证书的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值