一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - 如何在CocosCreator中使用http和WebSocket

如何在CocosCreator中使用http和WebSocket

2022-03-03 17:06gamedaybyday js教程

這篇文章主要介紹了在Cocos Creator中使用的Http和WebSocket,對websocket感興趣的同學,一定要看下

CocosCreator版本2.3.4

一、HttpGET

Get方式,客戶端請求本機地址3000端口,并攜帶參數url和name,服務端收到后返回name參數。

cocos客戶端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//訪問地址
let url = "http://127.0.0.1:3000/?url=123&name=321";
//新建Http
let xhr = new XMLHttpRequest();
//接收數據
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
        var response = xhr.responseText;
        console.log(response);
    }
};
//錯誤處理
xhr.onerror = function(evt){
    console.log(evt);
}
//初始化一個請求,GET方式,true異步請求
xhr.open("GET", url, true);
//發送請求
xhr.send();

為了方便測試,在本機用nodejs搭建一個簡易服務器,在收到訪問后,返回請求參數中的name值。

nodejs服務端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var app = require('express')();
var http = require('http').Server(app); 
 
 
app.get('/', function(req, res){
    //設置允許跨域的域名,*代表允許任意域名跨域
    res.header("Access-Control-Allow-Origin","*");
    //允許的header類型
    res.header("Access-Control-Allow-Headers","content-type");
    //跨域允許的請求方式
    res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
    res.send(req.query.name);
});
   
http.listen(3000, function(){
    console.log('listening on *:3000');
});

運行nodejs的服務器,并運行cocos代碼,cocos中

?
1
console.log(response);   //輸出為321

二、HTTPPOST

客戶端請求服務器,攜帶參數name,服務端收到后返回name。

cocos客戶端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let url = "http://127.0.0.1:3000/";
let xhr = new XMLHttpRequest();
 
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
        var response = xhr.responseText;
        console.log(response);
    }
};
xhr.onerror = function(evt){
    console.log(evt);
}
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("name=123");

nodejs服務端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var app = require('express')();
var http = require('http').Server(app); 
var querystring = require('querystring');
 
 
app.post('/', function(req, res){
    //設置允許跨域的域名,*代表允許任意域名跨域
    res.header("Access-Control-Allow-Origin","*");
    //允許的header類型
    res.header("Access-Control-Allow-Headers","content-type");
    //跨域允許的請求方式
    res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
     
    var body = "";
     
    req.on('data', function (chunk) {
        body += chunk;  //一定要使用+=,如果body=chunk,因為請求favicon.ico,body會等于{}
        console.log("chunk:",chunk);
    });
     
    req.on('end', function () {
        body = querystring.parse(body);
        console.log("body:",body);
        res.send(body.name);
    });
});
   
http.listen(3000, function(){
    console.log('listening on *:3000');
});

cocos輸出

?
1
console.log(response);  //輸出123

三、WebSocket

cocos客戶端代碼:

連接本地服務器127.0.0.1:8001,連接成功后發送一段字符串,并將接收的字符串打印

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let ws = new WebSocket("ws://127.0.0.1:8001");
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) {
        console.log("WebSocket start send message.");
        ws.send("Hello WebSocket, I'm a text message.");
    }
    else {
        console.log("WebSocket instance wasn't ready...");
    }
}, 3000);

nodejs服務端:

接收字符串成功后,打印接收的數據,并返回一段字符串。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var ws = require("nodejs-websocket");
  
console.log("開始創建websocket");
var server = ws.createServer(function(conn){
    console.log("連接成功");
    conn.on("text", function (obj) {
       console.log("接收:",obj);
        conn.send("message come from server");    
          
    })
    conn.on("close", function (code, reason) {
        console.log("關閉連接")
    });
    conn.on("error", function (code, reason) {
        console.log("異常關閉")
    });
}).listen(8001)
console.log("開始創建websocket完畢");

測試結果,客戶端瀏覽器輸出:

如何在CocosCreator中使用http和WebSocket

nodejs端輸出:

如何在CocosCreator中使用http和WebSocket

四、移植Egret的http和websocket到cocos

因為cocos沒有封裝工具類,所以直接從Egret移植http和websocket到cocos中使用,還算方便。

如何在CocosCreator中使用http和WebSocket

以上就是Cocos Creator 的Http和WebSocke的詳細內容,更多關于Cocos Creator的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/gamedaybyday/p/13028559.html

延伸 · 閱讀

精彩推薦
  • js教程如何在CocosCreator中使用http和WebSocket

    如何在CocosCreator中使用http和WebSocket

    這篇文章主要介紹了在Cocos Creator中使用的Http和WebSocket,對websocket感興趣的同學,一定要看下...

    gamedaybyday6342022-03-03
  • js教程NestJs使用Mongoose對MongoDB操作的方法

    NestJs使用Mongoose對MongoDB操作的方法

    這篇文章主要介紹了NestJs使用Mongoose對MongoDB操作的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    ragga-time4112022-01-22
  • js教程微信小程序實現多行文字滾動效果

    微信小程序實現多行文字滾動效果

    這篇文章主要介紹了微信小程序實現多行文字滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Archer_yy5362022-02-19
  • js教程詳解javascript腳本何時會被執行

    詳解javascript腳本何時會被執行

    這篇文章主要介紹了詳解javascript腳本何時會被執行,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下...

    皮卡丘和羊寶貝6792022-01-17
  • js教程JavaScript實現簡易加法計算器

    JavaScript實現簡易加法計算器

    這篇文章主要介紹了JavaScript實現簡易加法計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    小小小青臺3642022-02-22
  • js教程JS實現判斷對象是否為空對象的5種方法

    JS實現判斷對象是否為空對象的5種方法

    這篇文章主要介紹了JS實現判斷對象是否為空對象的5種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    Flavor_3802022-02-28
  • js教程通過幾行JavaScript就可以讀取電腦上的所有數據?

    通過幾行JavaScript就可以讀取電腦上的所有數據?

    通過幾行 JavaScript ,就可以讀取到電腦/手機上的所有數據,瀏覽器中的網頁可以讀取你所有的密碼,知道其他程序在干什么,這甚至不需要你寫出來的程序...

    code秘密花園4142022-03-01
  • js教程JavaScript實現篩選數組

    JavaScript實現篩選數組

    這篇文章主要為大家詳細介紹了JavaScript實現篩選數組,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    崇志廣勤7412022-01-25
主站蜘蛛池模板: 国产高清视频 | 美式禁忌在线 | 国产91成人精品亚洲精品 | 暖暖的免费观看高清视频韩国 | 亚洲精品国产精品精 | 精品国产原创在线观看视频 | 狠狠插入| 亚洲国产在线视频中文字 | 亚洲尿尿 | 日本情趣视频 | 国产精品一区二区三区免费 | 亚洲视频日韩 | 久久不射电影网 | 亚洲网站在线看 | 久久精品国产清白在天天线 | 成人午夜在线视频 | 免费日本视频 | 成人小视频在线观看 | 人妇小说 | 日日日操 | 男人的天堂comwww | 青青草精品 | 亚洲欧美一区二区三区在线观看 | 国产精品久久久久久岛国 | 高清在线一区二区 | 韩国情事伦理片观看地址 | 色综合天天娱乐综合网 | 天堂俺去俺来也www久久婷婷 | 国产亚洲人成网站在线观看不卡 | 五月最新女厕所高跟嘘嘘 | 欧美专区综合 | 久久精品国产亚洲AV热无遮挡 | 欧美艳星julnaann | 四虎一区 | 精品播放 | 日本xxxxxx片免费播放18 | 啊哈~嗯哼~用力cao我小说 | 亚洲四虎永久在线播放 | 国产精品国色综合久久 | 久久re热在线视频精69 | 日本乱中文字幕系列在线观看 |