私のラップトップでMQTT Mosquittoブローカーを実行しています。それから私はそれに2パホMQTTクライアントを接続しようとしています:1)JavaのPahoを使用してAndroid携帯から2)Python Pahoを使用してラズベリーパイから。MQTT pahoクライアント接続タイムアウト・エラー
Androidからの接続は完全に行われます。問題はありません。
ただし、何らかの理由でラズベリーに接続できません。
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を介してネットワーク内で行われる代わりclient.connect方法ブロックは、いくつかの時間後、私は、次受け取ります。モバイルデータはありません。誰かがなぜそれが起こるのか説明してもらえますか?
アプリの残りのコードを含めることができますので、すべて見ることができます。あなたはpiからラップトップにpingでき、 'mqttServer'変数が正しいホスト名/ IPアドレスであることを確認しましたか(余分な空白はありません) – hardillb
@hardillb私のラップトップでpingできます。 mqttServerは、標準の 'xxx.zzz.qqq.ttt'形式のIPを持つ文字列です(数回チェックします)。プライバシーのため投稿しません:) – tomkou
私はあなたがPiからラップトップへの別の方法でpingできるかどうか尋ねました。また、残りのコードを追加してください。あなたが望むなら、あなたはIPアドレスを置き換えることができます(ただし、192.168.xxまたは10.xxxのアドレスはローカルネットワークからのみアクセス可能です) – hardillb