CocosCreator Version 2.3.4 1. HttpGETBei der Get-Methode fordert der Client die lokale Adresse Port 3000 an und übergibt die Parameter URL und Name. Nach dem Empfang gibt der Server den Namensparameter zurück. Cocos-Client: //Zugriffsadresse let url = "http://127.0.0.1:3000/?url=123&name=321"; //Erstelle ein neues HTTP let xhr = neue XMLHttpRequest(); //Daten empfangen xhr.onreadystatechange = function () { wenn (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) { var Antwort = xhr.AntwortText; console.log(Antwort); } }; //Fehlerbehandlung xhr.onerror = function(evt){ Konsole.log(evt); } //Eine Anfrage initialisieren, GET-Methode, echte asynchrone Anfrage xhr.open("GET", url, true); //Anfrage senden xhr.send(); Um das Testen zu erleichtern, wird mithilfe von nodejs ein einfacher Server auf dem lokalen Computer erstellt. Nach Erhalt des Zugriffs wird der Name-Wert im Anforderungsparameter zurückgegeben. Nodejs-Server: var app = erfordern('express')(); var http = erfordern('http').Server(App); app.get('/', Funktion(req, res){ //Legen Sie den Domänennamen fest, der domänenübergreifend sein darf. * bedeutet, dass jedem Domänennamen das domänenübergreifende Benutzen gestattet ist. res.header("Access-Control-Allow-Origin","*"); //Erlaubte Header-Typen res.header("Access-Control-Allow-Headers","content-type"); //Domänenübergreifend zulässige Anforderungsmethoderes.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); res.send(Anforderung.Abfragename); }); http.listen(3000, Funktion(){ console.log('hört auf *:3000'); }); Führen Sie den Node.JS-Server aus und führen Sie den Cocos-Code aus. console.log(Antwort); //Ausgabe ist 321 2. HTTP POSTDer Client fordert den Server mit dem Parameternamen an und der Server gibt den Namen nach Erhalt zurück. Cocos-Client: let url = "http://127.0.0.1:3000/"; let xhr = neue XMLHttpRequest(); xhr.onreadystatechange = Funktion () { wenn (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) { var Antwort = xhr.AntwortText; console.log(Antwort); } }; xhr.onerror = Funktion(evt){ Konsole.log(evt); } xhr.open("POST", URL, wahr); xhr.setRequestHeader("Inhaltstyp", "Anwendung/x-www-form-urlencoded"); xhr.send("name=123"); Nodejs-Server: var app = erfordern('express')(); var http = erfordern('http').Server(App); var Abfragezeichenfolge = erforderlich('Abfragezeichenfolge'); app.post('/', Funktion(erfordert, res){ //Legen Sie den Domänennamen fest, der domänenübergreifend sein darf. * bedeutet, dass jedem Domänennamen das domänenübergreifende Benutzen gestattet ist. res.header("Access-Control-Allow-Origin","*"); //Erlaubte Header-Typen res.header("Access-Control-Allow-Headers","content-type"); //Domänenübergreifend zulässige Anforderungsmethoderes.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); var body = ""; req.on('Daten', Funktion (Block) { body += chunk; //Verwenden Sie unbedingt +=, wenn body=chunk, da favicon.ico angefordert wird, ist body gleich {} Konsole.log("Block:",Block); }); req.on('Ende', Funktion () { body = Abfragezeichenfolge.parse(body); Konsole.log("Body:",Body); res.send(Text.Name); }); }); http.listen(3000, Funktion(){ console.log('hört auf *:3000'); }); Cocos-Ausgabe console.log(Antwort); //Ausgabe 123 WebSocketCocos-Clientcode: Stellen Sie eine Verbindung zum lokalen Server 127.0.0.1:8001 her, senden Sie nach erfolgreicher Verbindung eine Zeichenfolge und drucken Sie die empfangene Zeichenfolge aus let ws = neuer WebSocket("ws://127.0.0.1:8001"); ws.onopen = Funktion (Ereignis) { console.log("Send Text WS wurde geöffnet."); }; ws.onmessage = Funktion (Ereignis) { console.log("Antworttextnachricht: " + event.data); }; ws.onerror = Funktion (Ereignis) { console.log("Beim Senden von Text ist ein Fehler aufgetreten"); }; ws.onclose = Funktion (Ereignis) { console.log("WebSocket-Instanz geschlossen."); }; setzeTimeout(Funktion () { wenn (ws.readyState === WebSocket.OPEN) { console.log("WebSocket beginnt mit dem Senden von Nachrichten."); ws.send("Hallo WebSocket, ich bin eine Textnachricht."); } anders { console.log("WebSocket-Instanz war nicht bereit..."); } }, 3000); Nodejs-Server: Drucken Sie nach dem erfolgreichen Empfang der Zeichenfolge die empfangenen Daten aus und geben Sie eine Zeichenfolge zurück. var ws = erfordern("nodejs-websocket"); console.log("WebSocket erstellen"); var server = ws.createServer(function(conn){ console.log("Verbindung erfolgreich"); conn.on("text", Funktion (Objekt) { console.log("Empfangen:",obj); conn.send("Nachricht kommt vom Server"); }) conn.on("schließen", Funktion (Code, Grund) { console.log("Verbindung schließen") }); conn.on("Fehler", Funktion (Code, Grund) { console.log("Abnormale Schließung") }); }).listen(8001) console.log("Starten Sie die Erstellung des WebSockets"); Testergebnisse, Client-Browser-Ausgabe: Ausgabe auf der Node.js-Seite: 4. Transplantieren Sie Egrets http und Websocket nach CocosDa Cocos über keine Kapselungstoolklassen verfügt, ist es recht praktisch, http und WebSocket direkt von Egret nach Cocos zu übertragen und dort zu verwenden. Oben finden Sie den detaillierten Inhalt von Http und WebSocket von Cocos Creator. Weitere Informationen zu Cocos Creator finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der MySQL-Vorkompilierungsfunktion
>>: So zeigen Sie Anwendungsprotokolle von Docker-Containern an
Der Autor dieses Artikels @子木yoyo hat ihn in seine...
Inhaltsverzeichnis Frage: 1. Erster Versuch 2. Ra...
Inhaltsverzeichnis 1. Dateien mit Skript-Tags imp...
Vorwort: Zum Speichern mehrerer Elemente sind Arr...
Vorwort Jeder, der JavaScript gelernt hat, muss s...
1. Skip-Grant-Tables zur Datei my.ini hinzufügen ...
<br />In einem Jahr Bloggen habe ich persönl...
1. Erstellen Sie ein neues Rabbitmq im Verzeichni...
1. Laden Sie das Gitlab-Image herunter Docker-Pul...
Schauen wir uns zunächst meinen Fehlercode an. ht...
Farbe ist eines der wichtigsten Elemente jeder We...
In diesem Artikel werden anhand von Beispielen di...
Der endgültige Effekt ist wie folgt: Die Animatio...
Das Installationstutorial für MySQL 5.7.19 Winx64...
Inhaltsverzeichnis Hintergrund 1. Dokumentbeschre...