2011-12-06 24 views
2

我曾考慮在我的網站上使用PubNub。Ruby on Rails PubNub作爲獨立進程訂閱

反過來,我可以訂閱與PubNub的頻道。

但是,我需要找到一種方法來運行訂閱到PubNub渠道的腳本。

例如,根據他們的文檔http://www.pubnub.com/blog/ruby-push-api,它聲明「要監聽已發佈的消息,調用subscribe函數,需要注意的是:subscribe函數是阻塞的,您需要在單獨的進程中運行此函數「。

然後PubNub提供了以下代碼:「過程」

## Subscribe (Listen for Messages) 
pubnub.subscribe({ 
'channel ' => 'my_channel', 
'callback' => lambda do |message| 
    ## Message Received!!! 
    puts(message['my_var']) ## print message 
    return true    ## keep listening? 
end 
    }) 

我想不到的方式來運行該功能作爲

是不是有像背景工作?這是我需要的嗎?

欣賞任何指導。

+0

您只需創建一個單獨的Ruby文件並從終端中的服務器命令行運行它。但是在重讀你的問題之後,你似乎試圖通過瀏覽器應用程序來訂閱Ruby /服務器端。您將使用Ruby來提供包含將訂閱的JavaScript的網頁,並且您的服務器上運行的單獨的Ruby腳本/流程可以發佈消息,或者JavaScript客戶端將發佈對等的對象涉及你的服務器 - 這是典型的用例。讓我知道如果是這樣的話。 –

回答

0

開始使用(此時)的最佳方式是使用Ruby EventMachine異步HTTP請求方法和PubNub HTTP REST API。

  1. EventMachine的::協議:: HttpClient2 - >http://eventmachine.rubyforge.org/EventMachine/Protocols/HttpClient2.html
  2. PubNub HTTP REST API - >http://www.pubnub.com/tutorial/http-rest-push-api

    conn = EM::Protocols::HttpClient2.connect 'pubsub.pubnub.com', 80 
    req = conn.get('/subscribe/SUBSCRIBE_KEY/CHANNEL/0/TIMETOKEN') 
    

請注意,這不是一個完整的例子,但良好的起點...您必須遵循HTTP REST指南。

+0

你能解釋更多嗎?我會在哪裏放置這段代碼?例如,我創建了一個.rb文件,但是當我這樣做時,我的瀏覽器剛好在那裏加載,因爲它使得連接 – Brian

+0

最好遵循EventMachine協議中HttpClient2提供的示例 - http://eventmachine.rubyforge.org/EventMachine /Protocols/HttpClient2.html – PubNub

+0

'EM.run { 康恩= EM ::協議:: HttpClient2.connect 'pubsub.pubnub.com',80 REQ = conn.get( '/') req.callback { |響應| p(response.status) p(response.headers) p(response.content) } }' – PubNub