2016-07-12 7 views
0

메시지 대기열과 웹 소켓을 배우는 재미있는 프로젝트를 진행하고 있습니다. 웹 사이트를 통해 브라우저를 순수한 웹 소켓 대신 sockjs를 사용하여 rabbitmq 인스턴스에 연결하려고합니다. 토끼의 경우 stomp 및 web_stomp 용 플러그인을 활성화했습니다 (sockjs를 사용할 때는 web_stomp가 필요합니다).RabbitMQ STOMP 연결

내가 겪고있는 문제는 Rabbit에 대한 매우 간단한 연결이 webstomp/stomp 연결을 통해 이루어지기 때문에 브라우저에서의 호출이 제대로 작동하는 것 같지만 2 ~ 3 초 후에 Rabbit에 의해 연결이 끊어집니다 .

이는 rabbitmq 로그에 의해 확인된다 : 01 :

= INFO REPORT가 7 ~ 11 2,016 23 : 54 ==== === 접수 STOMP 연결 (192.168.1.10:49746 - 02 :> 192.168.1.100:55674)
= INFO REPORT는 7 ~ 11 2,016 23 : 02 ==== === 개폐 STOMP 연결 (192.168.1.10:49746 -> 192.168.1.100:55674)

이것은 webstomp 플러그인을 통해 RabbitMQ에 연결하는 브라우저 코드입니다.
[ {rabbitmq_stomp, [{default_user, [{login, "test"}, {passcode, "test"} ] }, {tcp_listeners, [{"192.168.1.100", 55674}]}, {heartbeat, 0} ] } ]. 나는 토끼 문서를 통해 백만 번이나했지만 이것이 내가 내려다 오전 간단한 뭔가 느낌 : 여기 var url = "http://192.168.1.100:55674/stomp"; var ws = new SockJS(url); var client = Stomp.over(ws); var header = { login: 'test', passcode: 'test' }; client.connect(header, function(){ console.log('Hooray! Connected'); }, function(error){ console.log('Error connecting to WS via stomp:' + JSON.stringify(error)); } );

617,451,515,는 토끼 설정입니다.

답변

0

해결되었습니다. 로그를 샅샅이 뒤지고 난 후에 web_stomp가 포트 15674에서 청취하고 있음을 알았고이를 반영하기 위해 config 파일을 변경했습니다. 나는 어떤 점에서 그 변화를 만들었다 고 맹세하지만 차이를 만드는 것처럼 보이지 않았다.

내 요청을 보내기 전에 내가 늦게 변경 한 사항 중 하나는 하트 비트를 끄는 것이 었습니다. 내가 읽은 모든 것은 sockjs가 하트 비트를 지원하지 않는다는 것과 기본적으로 사용하는 것보다 끄기위한 제안이 있음을 설명합니다. config 파일에서 하트 비트를 끄는 것 외에도 브라우저 코드에 다음을 추가했습니다.

client.heartbeat.outgoing=0; 
client.heartbeat.incoming=0;