Fix bug in mqtt_rider script #299

This commit is contained in:
Kendrick Chan 2020-01-28 04:31:41 +08:00
parent 2d6193318a
commit bdb306e5e1
3 changed files with 8 additions and 13 deletions

View file

@ -23,27 +23,19 @@ def on_connect(client, userdata, flags, rc):
#print("Connected with result code "+str(rc)) #print("Connected with result code "+str(rc))
# client.subscribe("$SYS/#") # client.subscribe("$SYS/#")
def user_data_set(userdata):
conn = redis.StrictRedis(host='localhost', port=6379, db=0)
return conn
def on_publish(client, userdata, mid): def on_publish(client, userdata, mid):
pass pass
def on_message(client, userdata, message): def on_message(client, userdata, message):
# TODO: persist redis connection redis_conn = userdata['redis']
redis_conn = user_data_set(userdata)
#print("message topic=", message.topic[0:10])
topic_split = message.topic.split('/') topic_split = message.topic.split('/')
if topic_split[0] != 'rider': if topic_split[0] != 'rider':
return; return;
payload_split = message.payload.split(':') payload_split = message.payload.split(':')
#print repr(message) rider_long = str(payload_split[1])
rider_long = str(res['longitude']) rider_lat = str(payload_split[0])
rider_lat = str(res['latitude'])
# set the location # set the location
redis_conn.geoadd('rider_active', rider_long, rider_lat, topic_split[1]) redis_conn.geoadd('loc_rider_active', rider_long, rider_lat, topic_split[1])

View file

@ -1,10 +1,13 @@
import paho.mqtt.client as mqtt import paho.mqtt.client as mqtt
import rider_location_cache as rlc import rider_location_cache as rlc
import ssl import ssl
import redis
import logging import logging
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)
userdata = {'redis': redis_client}
client = mqtt.Client() client = mqtt.Client("", True, userdata)
client.on_connect = rlc.on_connect client.on_connect = rlc.on_connect
# client.on_publish = on_publish # client.on_publish = on_publish
client.on_message = rlc.on_message client.on_message = rlc.on_message