2016-03-04 56 views
0

我有一個本地(OSX 11)mosquitto代理(1.4.7)具有以下配置運行:驗證本地mosquitto MQTT經紀人橋接到test.mosquitto.org

connection test 
address test.mosquitto.org 
topic in_topic in 0 
topic out_topic out 0 
try_private false 
notifications false 
bridge_attempt_unsubscribe true 

我拿到的conf設置在這裏輸入:bridge local mosquitto to cloud broker(謝謝)

我現在有3個終端。

A:直接使用ruby腳本和ruby-mqtt訂閱test.mosquitto.org。

:向當地經紀商mosquitto_sub -t in_topic

Ç:發佈已使用此命令:mosquitto_pub -h test.mosquitto.org -t in_topic -m "hello world1"

現在,我這樣做時,我得到一個該響應所以這讓我覺得我的橋接連接正在工作。但是,如果我放棄-h test.mosquitto.org,我不會收到A的消息。因此,如果我包含-h選項,則該消息僅發送給該代理(test.mosquitto.org)。

在另一方面,如果我停止本地mosquitto代理,然後運行相同的命令,包括-h選項,則一個仍然得到消息,並沒有。 B實際上甚至沒有啓動,因爲連接被拒絕,因爲本地代理沒有運行。

所以,我的問題是,這種配置是否確實證明了經紀人正在橋接?我不確定。

更新: 作爲hardillb指出我的錯誤是,我用發佈的主題是沒有配置發佈了其他券商。當我將conf更新爲topic in_topic out 0時,我成功地直接從test.mosquitto.org代理獲取消息,換句話說,不包括-h test.mosquitto.org。消息根據配置傳播。

什麼,我得到了錯誤,可以在橋接段在這裏找到的文檔:http://mosquitto.org/man/mosquitto-conf-5.html

回答

1

你不會從運行得到終端一個任何以下

mosquitto_pub -t in_topic -m "hello world1" 

因爲你的橋被設置爲僅將out_topic上的東西從本地經紀人轉發到遠程(test.mosquitto.org)

topic out_topic out 0 
+0

謝謝!這很有道理,我可以證實,它的工作。真的很感謝幫助:) – Apie

0

如果可以的話我會改變你的配置:

notifications true 

這將發佈到$ SYS /經紀人/連接//狀態 - 無論是根據連接是否處於活動狀態1或0。這發生在遠程和本地代理上。