平常我們使用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",是可以自定義的參數,一般可以設定自己的項目名;
第三個參數才是我們要加載的證書的路徑。