어떻게 CocosCreator 에서 http 와 WebSocket 을 사용 합 니까?
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("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 를 실행 합 니 다.
console.log(response); // 321
2.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-www-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("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 출력
console.log(response); // 123
3.웹 소켓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 come from server");
})
conn.on("close", function (code, reason) {
console.log(" ")
});
conn.on("error", function (code, reason) {
console.log(" ")
});
}).listen(8001)
console.log(" websocket ");
테스트 결과,클 라 이언 트 브 라 우 저 출력:nodejs 엔 드 출력:
4.Egret 의 http 와 websocket 을 cocos 에 이식 합 니 다.
cocos 는 패키지 도구 류 가 없 기 때문에 Egret 에서 http 와 websocket 을 직접 이식 하여 cocos 에 사용 하 는 것 이 편리 하 다.
이상 은 바로 Cocos Creator 의 Http 와 WebSocke 의 상세 한 내용 입 니 다.더 많은 Cocos Creator 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LaraDock을 사용하여 Docker Nginx에 SSL 설정을 수행하고 WebSocket에서 ws에서 wss로 액세스 할 수 있도록 설정 한 메모LaraDock의 Nginx에서 ws의 wss화를 쉽게 할 수 있을 것으로 보인다. 의 Quoridorn 환경을 계속 사용한다. nginx 준비 의 nginx Docker 폴더를 사용한다. Dockerfile 수정 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.