2
我想从使用Flask构建的网页发送MQTT消息。从用python编写的网页发送MQTT消息与Flask
我已经建立在主回路的连接,我能够开始瓶
当我打电话之前发送的消息:
client.publish('all/camera/'+path, 'all')
没有任何反应。没有错误,但没有消息发送。我最好的猜测是这是一个范围问题。即。该对象的'客户'是不可见的功能。我曾试图启动客户端的主要功能之外,我也试图申报“客户”作为全球捕获()函数
的烧瓶应用程序里面的代码是下面:
#!/usr/bin/env python
from flask import Flask, render_template, request
import paho.mqtt.client as mqtt
from datetime import datetime
app = Flask(__name__)
@app.route('/', methods = ['POST', 'GET'])
def capture():
timestring=datetime.now().strftime("%Y%m%d-%H%M%S")
if 'sessionName' in request.form:
sessionName = request.form['sessionName']
path = sessionName + "_" + timestring
return render_template ('capture.html', path=path, timestring=timestring, sessionName=sessionName)
client.publish('all/camera/'+path, 'all')
else:
return render_template ('capture.html',timestring=timestring)
# paho callbacks
def on_connect(client, userdata, flags, rc):
#sub here will re subscribe on reconnection
client.subscribe("+/camera/#")
client.subscribe("+/led")
# Main Code
if __name__=='__main__':
client = mqtt.Client()
client.on_connect = on_connect
client.connect("scanserver.local",1883,60)
client.loop_start()
client.publish('debug', 'server running')
app.run(host = '0.0.0.0' , debug = True, port=5001)
你应该在返回之前调用client.publish –