平常我们使用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",是可以自定义的参数,一般可以设置自己的项目名;
第三个参数才是我们要加载的证书的路径。