2017-02-06 9 views
0

現在、2つのMQTTブローカーが両方とも正常に動作しています。それらの1つはラズベリーパイ私のローカルネットワークです。もう1つはリモートブローカーがCloudMQTTでホストされています。ローカルMQTTブローカーの接続URI

目的は、両方のブローカーを互いに同期させることです。もちろん、この簡単な解決策はブリッジですが、私は適切なブリッジ設定を取得するのにいくつか問題があります。

CloudMQTTにブリッジをセットアップしようとすると、下の画像に示すように、'接続URI'が尋ねられます。リモートブローカの場合、これはmqtt://username:[email protected]:1883になりますが、ローカルブローカでこれを行う方法を理解できないようです。 enter image description here

静的IPがあり、ポートがRaspberry Piに転送されている場合に限り、ローカルネットワークに接続することができます。どうすればこの問題を回避できますか? 2つのブローカーは、パーマネントTCPの接続を開いたままにする必要がありますが、リモートブローカーはそれを開くことができません。ローカルブローカーがこの接続を開くことは可能ではないでしょうか?もしそうなら、どうすれば2人のブローカーを同期させることができますか?

ご協力いただきありがとうございます。事前にお越しいただきありがとうございます。

編集:

これは私の完全な/etc/mosquitto/mosquitto.confファイルです:

あなたはmosquittoとブリッジを作成することができます
pid_file /var/run/mosquitto.pid 

persistence true 
persistence_location /var/lib/mosquitto/ 

log_dest file /var/log/mosquitto/mosquitto.log 

include_dir /etc/mosquitto/conf.d 


connection CloudMQTT-Bridge 

topiC# both 2 local/testing remote/testing 

bridge_protocol_version mqttv311 

address m20:cloudmqtt.com:17001 
remote_username jcw****** 
remote_password p-fO***** 
remote_clientid RaspberryPiBroker 
+0

あなたは、アドレスの先頭に '.'の代わりに': 'があります。 – hardillb

+0

ああ、指摘してくれてありがとう!私はその間違いを修正しましたが、依然として地元のブローカーに公開したりサブすることができません。 –

+0

出力ログを確認すると、それらの詳細は私にとってはうまく動作します(私は信用を持っていないので、 。あなたがサービスとして走っているなら、 'mosquitto -c/path/to/config'を使って手動で停止して実行することができます – hardillb

答えて

1

manページの "設定橋" セクションすべてのオプションをカバーしていますが、必要な基本事項は次のとおりです。

connection cloudMQ-Bridge 
address m20.cloudmqtt.com 
remote_username user 
remote_password password 
remote_clientid clientid 
topiC# in 2 

トリッキーなビットはトピックlinです2つのブローカ間でトピックをどのようにマッピングするかを制御する最後のe。ループを作成しないように注意する必要があります。

この例では、すべてのトピックは、トピックの再マッピングなしに、リモートブローカーからローカルブローカーにQOS 2でマップされます。ミスを犯しやすいので、トピックマッピングについてのマニュアルのセクションをよく読んでください。

+0

お返事ありがとうございます。私はあなたの例を試しましたが、私は奇妙な問題を経験しています。 confを編集してmosquittoを再起動すると、ローカルブローカーを購読することも公開することもできません。何らかの理由で、私はいつも「エラー:接続が拒否されました」と表示されます。これの原因は何ですか? –

+0

リモート接続のユーザ名/パスワードまたはアドレス/ポートのどちらかが間違っている可能性があります – hardillb

+0

これは理にかなっています!私はArduinoからCloudMQTTに接続しようとしましたが、うまくいきませんでしたので、ここで私はおそらく同じ問題を経験しています。 1つの奇妙なことは、TerminalからCloudMQTTへのパブリッシュだけで動作するということです。 –

関連する問題