CocosCreator バージョン 2.3.4 1. HTTPGETGet メソッドでは、クライアントはローカル アドレス ポート 3000 を要求し、パラメータ url と name を渡します。サーバーはそれを受信すると、name パラメータを返します。 Cocos クライアント: //アクセスアドレス let url = "http://127.0.0.1:3000/?url=123&name=321"; //新しいHttpを作成する xhr = new XMLHttpRequest(); //データを受信する xhr.onreadystatechange = function () { xhr.readyState == 4 の場合、xhr.status >= 200 の場合、xhr.status < 400 の場合 var レスポンス = xhr.responseText; console.log(応答); } }; //エラー処理 xhr.onerror = function(evt){ コンソールログ(evt); } // リクエストを初期化、GET メソッド、true 非同期リクエスト xhr.open("GET", url, true); //リクエストを送信 xhr.send(); テストを容易にするために、Node.js を使用してローカル マシン上にシンプルなサーバーを構築します。アクセスを受信すると、リクエスト パラメータの名前値が返されます。 Nodejs サーバー: var app = require('express')(); var http = require('http').Server(app); app.get('/', 関数(req, res){ // ドメイン間を移動できるドメイン名を設定します。* は、任意のドメイン名がドメイン間を移動できることを表します。res.header("Access-Control-Allow-Origin","*"); // 許可されるヘッダー タイプ res.header("Access-Control-Allow-Headers","content-type"); //クロスドメイン許可リクエストメソッドres.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); res.send(要求クエリ名); }); http.listen(3000, 関数(){ console.log('*:3000 でリッスンしています'); }); nodejs サーバーを実行し、cocos コードを実行します。 console.log(response); //出力は321 2. HTTP POSTクライアントはパラメータ名を使用してサーバーに要求し、サーバーはそれを受信した後に名前を返します。 Cocos クライアント: url = "http://127.0.0.1:3000/" とします。 xhr = new XMLHttpRequest(); xhr.onreadystatechange = 関数 () { xhr.readyState == 4 の場合、xhr.status >= 200 の場合、xhr.status < 400 の場合 var レスポンス = xhr.responseText; console.log(応答); } }; xhr.onerror = 関数(evt){ コンソールログ(evt); } xhr.open("POST", url, true); xhr.setRequestHeader("コンテンツタイプ", "application/x-www-form-urlencoded"); xhr.send("名前=123"); Nodejs サーバー: var app = require('express')(); var http = require('http').Server(app); var クエリ文字列 = require('クエリ文字列'); app.post('/', 関数(req, res){ // ドメイン間を移動できるドメイン名を設定します。* は、任意のドメイン名がドメイン間を移動できることを表します。res.header("Access-Control-Allow-Origin","*"); // 許可されるヘッダー タイプ res.header("Access-Control-Allow-Headers","content-type"); //クロスドメイン許可リクエストメソッドres.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); var 本文 = ""; req.on('data', 関数(チャンク) { body += chunk; // 必ず += を使用してください。body=chunk の場合、favicon.ico が要求されるため、body は {} と等しくなります。 console.log("チャンク:",チャンク); }); req.on('end', 関数() { 本文 = クエリ文字列.parse(本文); console.log("本文:",本文); res.send(本文.名前); }); }); http.listen(3000, 関数(){ console.log('*:3000 でリッスンしています'); }); Cocos出力 console.log(応答); //出力123 ウェブソケットCocos クライアントコード: ローカルサーバー127.0.0.1:8001に接続し、接続が成功した後に文字列を送信し、受信した文字列を出力します。 ws = new WebSocket("ws://127.0.0.1:8001"); ws.onopen = 関数 (イベント) { console.log("テキスト送信WSが開かれました。"); }; ws.onmessage = 関数 (イベント) { console.log("応答テキストメッセージ: " + event.data); }; ws.onerror = 関数 (イベント) { console.log("テキストの送信でエラーが発生しました"); }; ws.onclose = 関数 (イベント) { console.log("WebSocketインスタンスが閉じられました。"); }; setTimeout(関数() { ws.readyState === WebSocket.OPEN の場合 { console.log("WebSocket がメッセージの送信を開始しました。"); ws.send("Hello WebSocket、テキストメッセージです。"); } それ以外 { console.log("WebSocketインスタンスの準備ができていませんでした..."); } }, 3000); Nodejs サーバー: 文字列を正常に受信したら、受信したデータを出力し、文字列を返します。 var ws = require("nodejs-websocket"); console.log("Websocketの作成を開始します"); var server = ws.createServer(function(conn){ console.log("接続に成功しました"); conn.on("テキスト", 関数(obj) { console.log("受信:",obj); conn.send("サーバーからメッセージが届きました"); }) conn.on("close", 関数(コード, 理由) { console.log("接続を閉じる") }); conn.on("エラー", 関数(コード, 理由) { console.log("異常終了") }); }).listen(8001) console.log("Websocketの作成を開始します"); テスト結果、クライアント ブラウザー出力: nodejs 側の出力: 4. Egretのhttpとwebsocketをcocosに移植するcocos にはカプセル化ツールクラスがないため、Egret から http と websocket を cocos に直接移植して使用すると非常に便利です。 以上がCocos CreatorのHttpとWebSocketの詳しい内容です。Cocos Creatorの詳細については、123WORDPRESS.COMの他の関連記事もご覧ください。 以下もご興味があるかもしれません:
|
背景検索エンジンで「.htaccess キャッシュ」というキーワードを検索すると、ウェブサイトのファ...
このスクリプトは、nginxの起動、停止、再起動の操作を満たすことができます。 #!/bin/bas...
画像タグ <IMG> を挿入します。今日私たちが目にするカラフルなウェブページはすべて、...
マイグレーションアドバンテージ:小型、高速、総所有コストが低い、オープンソース。複数のオペレーティン...
実験環境: 1. CentOS 7 サーバー 3 台2. mysql5.7.26 (3台のマシンはす...
プロジェクトをリリースするときに、キャッシュをクリーンアップする必要があるという問題に遭遇することが...
目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...
さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...
mysql テーブル作成 SQL ステートメントMySQL テーブルを作成するための一般的な SQL...
Nginx によるソケット ポート転送の一般的なシナリオ: オンライン学習アプリケーションでは、通常...
序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...
目次1 Java環境の設定2 tomcatのインストールと展開Tomcat をインストールして展開す...
1. Mycatの適用シナリオMycat は幅広いシナリオに合わせて開発されており、新しいユーザーが...
VM Ware 仮想マシン CentOS の時刻は、次の図に示すように、現地時間と一致しません。おそ...
目次フロントエンドルーティングとは何ですか?フロントエンドルーティングを実装するにはどうすればいいで...