我正在筆記本電腦上運行MQTT Mosquitto broker。然後我試圖連接2個Paho MQTT客戶端:1)使用Java Paho的Android手機和2)使用Python Paho的Raspberry Pi。MQTT帕霍客戶端連接超時錯誤
從Android的連接是完全製造。沒問題。
然而,覆盆子出於某種原因無法連接。代替client.connect方法塊和在一段時間後,收到以下:
Traceback (most recent call last):
File "sensorsClient.py", line 28, in <module>
client.connect(mqttServer, 1883)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 700, in connect
return self.reconnect()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 822, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
socket.error: [Errno 110] Connection timed out
用於連接的代碼如下:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("$SYS/#")
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
mqttServer = 'zzz.xxx.ccc.qqq' # Public IP of the laptop
client = mqtt.Client("", True, None, mqtt.MQTTv31)
client.on_connect = on_connect
client.on_message = on_message
client.connect(mqttServer, 1883)
client.loop_start()
的everythin經由WIFI一個網絡內進行的。沒有移動數據。有人可以解釋我爲什麼會發生這種情況嗎?
你可以包括應用程序的其餘代碼,所以我們可以看到所有的請。你有沒有檢查過,你可以ping從pi的筆記本電腦和'mqttServer'變量是正確的主機名/ IP地址(沒有額外的空白空間) – hardillb
@hardillb我可以用我的筆記本電腦。 mqttServer是一個標準爲'xxx.zzz.qqq.ttt'格式的IP(檢查過幾次)的字符串。不會發布它,因爲隱私:) – tomkou
我問你是否可以ping通另一種方式,從Pi到筆記本電腦。還請添加代碼的其餘部分,你可以,如果你想更換IP地址(但假設它是一個192.168.XX或10.xxx的地址,它是從你的本地網絡才能訪問) – hardillb