您只想运行
socketio.run(app, port=5005)并点击端口5005上的REST API。
之所以起作用,是因为Flask-SocketIO在后台运行了一个基于gevent(或带有1.0版本,还有eventlet)的事件化Web服务器-
该服务器直接处理websocket请求(使用您通过
socketio.on装饰器注册的处理程序),正在将非websocket请求传递给Flask。
您的代码 无法 正常工作的原因是因为
app.run和
socketio.run都 阻塞了
操作。第一个运行的是循环播放,等待连接,决不允许第二个启动。如果确实 需要
在其他端口上运行Websocket连接,则需要
run在其他进程上生成socketio或应用程序调用。



