我正在尝试让python 2.7中的eventlet
与flask-socketio
一起工作。这是我正在使用的基本代码:
import eventlet
from flask import Flask
from flask_socketio import SocketIO
import threading
import time
def server():
app = Flask(__name__)
app.config['SECRET_KEY'] = 'asdf'
socketio = SocketIO(app, host = '0.0.0.0')
socketio.run(app)
server_thread = threading.Thread(target = server)
server_thread.start()
while True:
time.sleep(1)
当我在笔记本电脑上运行它时,这似乎可以工作(flask-socketio
使用eventlet
)。但是,当我在嵌入式设备上运行该程序时,会收到以下消息:
WebSocket传输不可用。安装eventlet或gevent和gevent-websocket以提高性能。
两个系统之间肯定有不同的软件包版本,我怀疑这是失败的原因。以下是嵌入式系统上的软件包:
click==6.7
eventlet==0.18.4
Flask==0.12.2
Flask-SocketIO==3.3.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
pyserial==3.4
python-engineio==3.5.2
python-socketio==4.0.2
six==1.11.0
smbus==1.1
Werkzeug==0.12.2
有人知道为什么flask-socketio
不能在这些版本中使用eventlet
吗?
我也不知道它是否相关,但是host = '0.0.0.0'
也被忽略了(在我的开发机和嵌入式机上)。它始终在127.0.0.1上运行。
有什么想法吗?