如何在CocosCreator中使用http和WebSocket
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要介绍了在Cocos Creator中使用的Http和WebSocket,对websocket感兴趣的同学,一定要看下
CocosCreator版本2.3.4
一、HttpGET
Get方式,客户端请求本机地址3000端口,并携带参数url和name,服务端收到后返回name参数。
cocos客户端
//访问地址 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服务端
var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req, res){ //设置允许跨域的域名,代表允许任意域名跨域 res.header("Aess-Control-Allow-Origin",""); //允许的header类型 res.header("Aess-Control-Allow-Headers","content-type"); //跨域允许的请求方式 res.header("Aess-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中
console.log(response); //输出为321
二、HTTPPOST
客户端请求服务器,携带参数name,服务端收到后返回name。
cocos客户端
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--form-urlencoded"); xhr.send("name=123");
nodejs服务端
var app = require('express')(); var http = require('http').Server(app); var querystring = require('querystring'); app.post('/', function(req, res){ //设置允许跨域的域名,代表允许任意域名跨域 res.header("Aess-Control-Allow-Origin",""); //允许的header类型 res.header("Aess-Control-Allow-Headers","content-type"); //跨域允许的请求方式 res.header("Aess-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输出
console.log(response); //输出123
三、WebSocket
cocos客户端代码
连接本地服务器127.0.0.1:8001,连接成功后发送一段字符串,并将接收的字符串打印
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服务端
接收字符串成功后,打印接收的数据,并返回一段字符串。
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 e from server"); }) conn.on("close", function (code, reason) { console.log("关闭连接") }); conn.on("error", function (code, reason) { console.log("异常关闭") }); }).listen(8001) console.log("开始创建websocket完毕");
测试结果,客户端浏览器输出
nodejs端输出
四、移植Egret的http和websocket到cocos
因为cocos没有封装工具类,所以直接从Egret移植http和websocket到cocos中使用,还算方便。
以上就是Cocos Creator 的Http和WebSocke的详细内容,更多关于Cocos Creator的资料请关注狼蚁SEO其它相关文章!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南