2012-03-16 79 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