使用cocos creator開發微信小遊戲(五) 網絡接口

在 Cocos Creator 中,我們支持 Web 平臺上最廣泛使用的標準網絡接口:

  • XMLHttpRequest:用於短連接
  • WebSocket:用於長連接
    當然,在 Web 平臺,瀏覽器原生就支持這兩個接口,之所以說 Cocos Creator 支持,是因爲在發佈原生版本時,用戶使用這兩個網絡接口的代碼也是可以運行的。也就是遵循 Cocos 一直秉承的 “一套代碼,多平臺運行” 原則。

使用方法

  1. XMLHttpRequest 簡單示例:

    var xhr = new XMLHttpRequest();
     xhr.onreadystatechange = function () {
         if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
             var response = xhr.responseText;
             console.log(response);
         }
     };
     xhr.open("GET", url, true);
     xhr.send();
    

    開發者可以直接使用 new XMLHttpRequest() 來創建一個連接對象,也可以通過 cc.loader.getXMLHttpRequest() 來創建,兩者效果一致。

  2. WebSocket

    簡單示例:

    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.");
     };
    
     setTimeout(function () {
         if (ws.readyState === WebSocket.OPEN) {
             ws.send("Hello WebSocket, I'm a text message.");
         }
         else {
             console.log("WebSocket instance wasn't ready...");
         }
     }, 3);
    

SocketIO

除此之外,SocketIO 提供一種基於 WebSocket API 的封裝,可以用於 Node.js 服務端。如果需要使用這個庫,開發者可以自己引用 SocketIO。

在腳本中引用 SocketIO:

  1. 下載 SocketIO:https://socket.io
  2. 將下載後的文件放入拖入資源管理器中你希望保存的路徑
  3. 修改 SocketIO 腳本文件以避免在原生環境中被執行
    由於 Web 版本 SocketIO 不能夠在 JSB 中被正確解析,因此 Cocos 在原生環境中自帶了 SocketIO 實現。所以我們需要一點 hack 的手段讓 Web 版本 SocketIO 的腳本在原生環境中不生效,方法就是在 SocketIO 腳本文件中做如下修改:
     if (!cc.sys.isNative) {
         // SocketIO 原始代碼
     }
    
  4. 將 SocketIO 腳本文件設爲 插件腳本,這樣在組件中直接使用 window.io 就能訪問到 SocketIO
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章