天天看點

CocosCreator中WebSocket使用WSS協定

平常我們使用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",是可以自定義的參數,一般可以設定自己的項目名;

第三個參數才是我們要加載的證書的路徑。

繼續閱讀