【问题标题】:Call nodeJS javascript file from Adobe AIR possible?可以从 Adob​​e AIR 调用 nodeJS javascript 文件吗?
【发布时间】:2012-03-16 16:55:14
【问题描述】:

我有一个项目(adobe AIR 3.1 - NOT flex)正在我的安装了 nodeJS 的网络服务器上运行。我正在研究从 AIR 应用程序调用 NodeJS javascript 文件的可能性。就像 AIR 应用程序收集一些信息并在 NodeJS 中调用 socket.io 以将信息发送到 html 连接的客户端。有可能吗?

【问题讨论】:

    标签: javascript actionscript-3 node.js air


    【解决方案1】:

    这在 socket io 使用的底层协议中当然是可能的。我认为有几种方法可以做到这一点:

    1. 使用 ExternalInterface 并实际使用 socket.io 客户端库 (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html)
    2. 向 node.js 应用程序发送信息的方式与 socket.io 用于 Adob​​e Flash Socket、长轮询甚至 jsonp 轮询的方式相同 (http://socket.io/#browser-support)
    3. 编写一个 shim 并通过本机进程启动一个流 (http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html)。您甚至可以通过这种方式启动 node.js 应用程序。

    总的来说,虽然它在技术上是可行的,但我相信 Adob​​e AIR 并不经常在服务器端使用。是否有仅使用 node.js 无法获取的数据?

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

    【讨论】:

    • 好吧,我确实尝试了一些非常简单的方法,但我不知道为什么它不起作用。我用javascript编写了一个调用nodejs的php页面,我在AIR的POST中调用了那个php页面。如果我从浏览器调用该页面,它可以工作,但由于某种原因它不能从 AIR 应用程序工作。感谢您的建议,我会尽量保持简单......
    • 我现在的问题是,我可以从 AS3/AIR 调用 POST 中运行 javascript 的 php 页面吗? JS 似乎没有运行...
    • 您的软件堆栈似乎很复杂。如果我理解正确,您正在构建一个 POST 请求到一个 php 页面,该页面返回一些 javascript,该 javascript 本身使用一些其他协议与节点 js 应用程序对话。您可以让 AS3 使用与 javascript 使用的相同协议直接与节点 js 应用程序对话。但我可以看到它可能很不方便(例如,也许您正在使用一些复杂的 javascript 库,如 socket.io ......这意味着将其移植到 as3)。
    • 如果您必须使用 PHP,有 2 种方法可能可行。您可以使用 HTMLLoader (livedocs.adobe.com/flex/3/html/…) 或 StageWebView (adobe.com/devnet/air/quick_start_as/quickstarts/…)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2012-03-25
    • 2010-09-25
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多