2011-12-06 12 views
2

내 웹 사이트에서 PubNub 사용을 고려했습니다.Ruby on Rails PubNub는 별도의 프로세스로 신청합니다

차례로 PubNub로 채널을 구독 할 수 있습니다.

그러나 PubNub를 사용하여 채널을 구독하는 스크립트를 실행하는 방법을 찾아야합니다.

예를 들어, 해당 설명서 http://www.pubnub.com/blog/ruby-push-api에 따르면 "게시 된 메시지를 수신하려면 구독 기능을 호출합니다. 구독 기능이 차단되어 있습니다.이 기능을 별도의 프로세스에서 실행해야합니다. . " . "과정"

## 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 
    }) 
나는이 함수를 실행하는 방법을 생각할 수 없다

:

그런 다음 PubNub는 다음과 같은 코드를 제공합니다

백그라운드 작업 같은 것이 없습니까? 이게 내가 필요한 것 일까?

는 지침을 주셔서 감사합니다.

+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 { CONN = EM : 프로토콜 :: HttpClient2.connect 'pubsub.pubnub.com를'80 REQ conn.get = ('/') { req.callback 응답 | p (response.status) p (response.headers) p (response.content) } } – PubNub