2011-12-06 22 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