2016-07-12 18 views
0

私はメッセージキューとWebソケットを学ばなければならない楽しいプロジェクトに取り組んでいます。私はWebSocket経由でブラウザを、純粋なWebSocketではなくsockjsを使ってrabbitmqのインスタンスに接続しようとしています。ウサギでは、私はstompとweb_stomp用のプラグインを有効にしています(web_stompはsockjsを使用するときに必要です)。RabbitMQ STOMP接続

私が遭遇している問題は、ウサギへの非常に簡単な接続がwebstomp/stomp接続を介して行われているためですが、2〜3秒後にはウサギによって接続が切断されるため、ブラウザからの呼び出しが適切に機能しているようです。

これは、RabbitMQのログによって確認されています

= INFO REPORT ====年7月11日 - 2016は:: 23:01:STOMP接続(192.168.1.10:49746を受け入れる54 === - > 192.168.1.100:55674)
= INFO REPORT ==== 11月7月-2016 :: 23:02:02 === STOMP接続を閉じる(192.168.1.10:49746 - > 192.168.1.100:55674)

これはwebstompプラグインを介してRabbitMQに接続するブラウザコードです。
ここで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)); } );

ウサギconfigです: [ {rabbitmq_stomp, [{default_user, [{login, "test"}, {passcode, "test"} ] }, {tcp_listeners, [{"192.168.1.100", 55674}]}, {heartbeat, 0} ] } ]. 私はウサギのドキュメント上で百万回となっているが、これは私が見渡せるだとシンプルなもののように感じています。

答えて

0

解決済み。ログを櫛通りにした後、web_stompはポート15674でリッスンしていたので、設定ファイルを変更して反映させました。私はある時点でその変更を行ったことを誓っていますが、それは違いを生じさせていないようです。

私がリクエストを送信する前に行った遅れた変更の1つは、ハートビートをオフにすることでした。私が読んだことはすべて、sockjsはハートビートをサポートしておらず、デフォルトを使用するのではなく、オフにするという提案があることを述べています。 configファイルでハートビートをオフにすることに加えて、これをブラウザコードに追加しました:

client.heartbeat.outgoing=0; 
client.heartbeat.incoming=0; 
関連する問題