天天看點

Flex2通路遠端網關Rubyamf

rubyamf裡的services目錄用了放置使用者自定義rb檔案的。services目錄下的rubyamf/helpers/active_record_connector.rb檔案是用來調用active record的。如果使用者需要連接配接資料庫,那麼他可以在自定義類裡定義如下代碼: require RUBYAMF_SERVICES  +   ' rubyamf/helpers/active_record_connector'

class MyService

  include ActiveRecordConnector

  def before_filter

    ar_connect(RUBYAMF_SERVICES  +   ' some/paackage/my.yaml','myconnectionnode')

   end

  def say_something(something)

    something.to_s    

   end

  def get_product

    product  =  Product.find(:all)

   end

end

class Product  <  ActiveRecord::Base

end 1.必須存在services/some/package/my.yaml的資料庫配置檔案 2.相應的資料庫中必須存在products表 3.從上面的代碼可以看出services目錄下的MyService類,其實是繼承了ActionController類,展現了ruby動态語言的靈活性。 然後在rubyamf目錄下運作dos指令:ruby server/start (ruby server/start -h可以檢視start參數清單) 在flex用戶端可以用如下代碼來調用say_something和get_product  

Flex2通路遠端網關Rubyamf

gateway.call(  " tutorials.HelloWorld.get_product " ,  new  Responder(onResult, onFault));

Flex2通路遠端網關Rubyamf

gateway.call(  " tutorials.HelloWorld.say_something " ,  new  Responder(onResult, onFault), " Hello Jiorry " ); 關于flex的具體代碼,可以參考amfnet裡的内容。 在mongrel_servlet.rb裡可以看出h.register("/gateway.rb", RUBYAMF::MongrelServlet.new),mongrel隻需注冊一個servlet就可以攔截請求。