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

问题描述 投票:1回答:1

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

例如

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

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

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

提前致谢。

actionscript-3 node.js air
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类实例化为请求来填写url和方法。
  • 我们附加一个load complete事件处理程序来处理响应。
  • 为了捕获错误,我们称之为加载方法。
  • 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变量并进行测试。
  • 服务器响应为true,因为该值等于guest
© www.soinside.com 2019 - 2024. All rights reserved.