2013-06-29 2 views
1

New to ActiveMQ. 루비 스톰프 젬 사용. 나는 내가 브라우저 관리 클라이언트의 대기열에서 메시지를 볼 때 서버에 메시지를 성공적으로 게시한다고 생각합니다. 그러나 가입시 아무 일도 일어나지 않으며 오류도 출력도 발생하지 않습니다. puts의 "in subscribe"테스트 텍스트는 stdout에 나타나지 않으며 msg에도 표시되지 않습니다.ActiveMQ with Ruby Stomp gem - 구독 실패

대기열에 대해 다른 이름 지정 형식을 사용해야합니까?

require 'stomp' 
port = 61613 

client = Stomp::Client.new('admin', 'admin', '127.0.0.1', port) 
client.publish("/queue/mine2", "hello world!") 
puts "about to subscribe" 

client.subscribe("/queue/mine2") do |msg| 
    puts "in subscribe" 
    puts msg 
end 
client.close 

답변

1

나는 아무것도받을 기회를 얻기 전에 클라이언트를 종료한다고 생각합니다.

client.subscribeclient.close 사이에 선점이 없으면 새 메시지를 수신 대기하는 백그라운드 스레드가 실행되지 않습니다.

당신은 그것을 닫기 전에

client.join 

를 추가하려고한다.

+0

대단히 감사합니다. – bethesdaboys

0

client.join이 나를 위해 첫 번째 메시지 또는 두 번째 메시지를 성공적으로 내렸지 만 코드가 실행 된 후 코드가 완전히 작동하지 않고 구독자가 다시 응답하기 만했습니다.

client = Stomp::Client.new('localhost', 61613) 

하지만 대신 URL을 사용하여이 작업을 얻을 수 있었다 : 나는 (단지 부족 creds) 매우 유사한 방법으로 나의 클라이언트를 시작했다 creds와

client = Stomp::Client.new('stomp://localhost:61613') 

를, 그것은 볼 것 다음과 같습니다.

client = Stomp::Client.new('stomp://login:[email protected]:port') 

희망 사항은 다음 호자에게 도움이됩니다.