2016-06-21 11 views
1

Ich habe Mosquitto installiert und im Terminal ohne Problem verwendet, auch installiert Paho für C++, sowohl Moskito und Paho gut funktionieren. Dann installiert Paho für Python über Pip. Jetzt versuche ich es mit diesem Code zu testen, aber die Funktionen on_message und on_connect werden nie aufgerufen. Ich machePaho Teilnehmer on_message/on_connect funktioniert nicht

mosquitto_pub -h localhost -t "test" -m "This is a message"

während der Python-Skript läuft, aber es funktioniert nicht. Es kommt nie zu der Zeile, die "on_message" ausgibt.

import paho.mqtt.client as mqtt 

def on_connect(self, mqtt_client, obj, flags, rc): 
    mqtt_client.subscribe("test") 

def on_message(self, mqtt_client, obj, msg): 
    print "on_message()" 


print "Initializing subscriber" 
mqtt_client = mqtt.Client() 
mqtt_client.on_connect = on_connect 
mqtt_client.on_message = on_message 
mqtt_client.connect("localhost",1883) 
print "Listening" 
while True: 
    mqtt_client.loop() 

Was mache ich falsch?

Antwort

1

Das folgende funktioniert gut für mich.

Ich habe die self aus den Rückrufen entfernt und tauschte die Schleife für mqtt_client.loop_forever()

import paho.mqtt.client as mqtt 

def on_connect(mqtt_client, obj, flags, rc): 
    mqtt_client.subscribe("test") 

def on_message(mqtt_client, obj, msg): 
    print "on_message()" 


print "Initializing subscriber" 
mqtt_client = mqtt.Client() 
mqtt_client.on_connect = on_connect 
mqtt_client.on_message = on_message 
mqtt_client.connect("localhost",1883) 
print "Listening" 
mqtt_client.loop_forever() 
+0

Sind Sie mosquitto_pub -h localhost -t „test“ mit -m „Dies ist eine Meldung“? Weil es immer noch nicht für mich funktioniert. Vielleicht ist es etwas von meinem System. –

+0

'mosquitto_pub -t test -m foo' aber es ist nahe genug (der Standard-Broker ist localhost und keine Notwendigkeit für die Anführungszeichen für einzelne Wortnachrichten) – hardillb

+0

Ok! Funktioniert immer noch nicht, sogar mit "mosquitto_pub -t test -m foo". Scheint etwas von meinem System zu sein. Vielen Dank! –

Verwandte Themen