我正在uWSGI服务器上运行的Raspberry Pi上运行Flask应用程序。我正在尝试通过Flask-socketIo结合文档中指定的gevent和gevent-websocket来实现WebSocket协议。
当我用这一行启动应用程序时,我没有遇到任何问题,数据将通过websocket发送到客户端,如预期的那样:
socketio.run(app, host='0.0.0.0', port=80, debug=True)
但是,如果将debug设置为False,则emit函数将不再起作用。
def updateSensorsState(sensor):
print "update"
socketio.emit('state', json.dumps(sensor))
在这种情况下,当我按下按钮时,会从GPIO回调中调用updateSensorState(sensor)。我在控制台中打印了更新,并且emission函数似乎挂在那里。如果我多次按下该按钮,客户端将不时地在很多时间后收到消息队列...
任何能帮助我解决我的代码问题的建议都会非常感激。 谢谢。