2012-03-16 85 views
0

我有一个项目(adobe AIR 3.1 - NOT flex),它运行在安装nodeJS的web服务器上。我正在寻找从AIR应用程序调用NodeJS JavaScript文件的可能性。就像AIR应用程序收集一些信息并在NodeJS中调用socket.io来将信息发送给html连接的客户端。可能吗 ?从Adobe AIR调用nodeJS javascript文件可能吗?

回答

1

这在socket io使用的底层协议中当然是可行的。我觉得有几个方法,你可以去这样做:

  1. 使用ExternalInterface的和实际利用socket.io客户端库(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/ 3/flash/external/ExternalInterface.html)
  2. 以与socket.io用于Adobe Flash Socket,长轮询或甚至jsonp轮询(http:// socket)相同的方式将信息发送到node.js应用程序。 io /#浏览器支持)
  3. 编写一个填充程序并通过本机进程启动一个流(http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html)。你甚至可以用这种方式启动node.js应用程序。

总体而言,虽然技术上可行,但我相信Adobe AIR并不常用在服务器端。那里有没有数据只能使用node.js?

只是为了澄清,socket.io很好,但它只有充分利用,如果你需要双向通信。如果您只是将数据从AIR应用程序发送到node.js应用程序,那么您有很多选择(即通过http服务(如REST/SOAP等)发送数据。)

+0

嗯,我确实尝试了一些非常简单的但我不知道为什么它不起作用。我写了一个php页面,用javascript调用nodejs,并且我从AIR的POST中调用了该页面。如果我从我的浏览器中调用该页面,它可以正常工作,但由于某种原因它不适用于AIR应用程序。感谢您的建议,我会尽量保持简单... – Eric 2012-03-16 18:55:12

+0

我的问题是现在,我可以从AS3/AIR调用POST页面中的一个运行JavaScript的PHP页面? JS似乎没有运行... – Eric 2012-03-16 19:13:18

+0

你的软件堆栈似乎是一个很大的复杂。如果我的理解正确,你正在构建一个POST请求到一个PHP页面,该页面返回一些JavaScript,它本身使用其他协议与节点js应用程序进行通信。 您可以使用与javascript相同的协议,让AS3直接与节点js应用程序对话。但是我可以看到它可能不方便(例如,也许你正在使用一些复杂的JavaScript库,比如socket.io ...,这意味着将它移植到as3)。 – badunk 2012-03-16 21:50:24