如何在Air Action Script应用程序和Node.js服务器之间进行通信

时间:2012-04-26 11:34:33

标签: actionscript-3 node.js air

有人可以建议在Air(Action script)App和node.js服务器之间进行通信吗?

e.g。

  1. 使用AMFPHP与PHP和Flash(Action Script)应用程序进行通信

  2. BlazeDS for Java + Adob​​e Flex和Adobe Integrated Runtime(AIR)

  3. 请将您的建议,任何教程或PoC示例代码发送给我

    先谢谢。

1 个答案:

答案 0 :(得分: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 即可。
  • 我们填写网址&amp;通过将URLRequest类实例化为请求
  • 的方法
  • 我们附加了一个加载完成事件处理程序来处理响应。
  • 为了捕捉错误,我们称之为加载方法。
  • 将URL设置为Localhost端口1337,其中将托管nodeJS。

  • 变量集是测试字段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/');

简要介绍代码段:

  • 代码侦听托管它的localhost服务器中的端口1337。
  • 解包查询字符串以获取UserName变量&amp;测试
  • 服务器以 true 回复,因为该值等于来宾
相关问题