1

誰かがAir(アクションスクリプト)アプリとnode.jsサーバーの間で通信する方法を提案できますか?

例えば

  1. PHPとAMFPHPを使用したFlash(アクションスクリプト)アプリケーション間の通信

  2. BlazeDS for Java +AdobeFlexおよびAdobeIntegratedRuntime(AIR)

提案、チュートリアル、またはPoCサンプルコードを送ってください

前もって感謝します。

4

1 に答える 1

3

これが私がブログのために書いたサンプルです。コード自体はほとんどそれ自体を説明していると思います。


クライアント側AS3コード:

var urlString:String = "http://localhost:1337/"; 

function Submit():void
{
    var requestVars:URLVariables = new URLVariables();
    requestVars.Username = "guest";

    var request:URLRequest = new URLRequest();
    request.url = urlString;
    request.method = URLRequestMethod.GET;
    request.data = requestVars;

    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

    try { loader.load(request); }

    catch (error:Error) { // Handle Immediate Errors }
}

function loaderCompleteHandler(e:Event):void
{
    trace(e.target.data); // Response Text
}

コードスニペットについての簡単な説明:

  • URLVariablesクラスをrequestVarsとしてインスタンス化することにより、リクエストデータを入力します 。
  • URLRequestクラスをrequestとしてインスタンス化することにより、urlとメソッドを入力します。
  • 応答を処理するために、ロード完了イベントハンドラーをアタッチします。
  • エラーをキャッチするためのまとめとして、loadメソッドを呼び出します。
  • URLは、nodeJSがホストされるローカルホストポート1337に設定されます。

  • 変数セットは、サーバースクリプトでチェックされるテストフィールドUserNameです。


サーバーサイドNodeJSコード:

var http = require('http'), url = require('url');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  var urlObj = url.parse(req.url, true);

  if(urlObj.query["Username"] == "guest") res.end("True");    

  else res.end("False");    

}).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

コードスニペットについての簡単な説明:

  • コードは、ホストされているローカルホストサーバーのポート1337でリッスンします。
  • クエリ文字列は、UserName変数を取得してテストするために、ラップ解除されます。
  • 値はguestに等しいため、サーバーはtrueで応答します。
于 2012-04-26T11:56:19.923 に答える