首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gevent/Gevent-不使用websocket

Gevent/Gevent-不使用websocket
EN

Stack Overflow用户
提问于 2018-07-13 17:52:50
回答 1查看 6.5K关注 0票数 4

我正在构建一个web接口/数据API,使用烧瓶和Flask进行websocket通信。我想开始转向使用Gevent/Gevent、Gunicorn和最终Nginx来实现负载平衡的更易于开发的设置。但是,在安装Gevent和Gevent之后,在启动SocketIO服务器时仍然会收到一条警告消息:

代码语言:javascript
复制
WebSocket transport not available. Install eventlet or gevent and gevent-websocket for improved performance.

根据酒瓶-SocketIO文件,

当应用程序处于调试模式时,Werkzeug开发服务器仍然在socketio.run()中被正确使用和配置。在生产模式中,如果可用,则使用事件web服务器,否则使用gevent web服务器。如果未安装eventlet和gevent,则使用Werkzeug开发web服务器。

这意味着Gevent的使用应该作为的一部分在幕后实现自动化。我用pip列表检查了Python安装,并确认已经安装了Gevent 1.3.4和0.10.1。下面是SocketIO服务器的初始化代码:

app.py

代码语言:javascript
复制
flaskApp = Flask(__name__)
flaskApp.config['SESSION_TYPE'] = 'filesystem'
Session(flaskApp)
socketio = SocketIO(flaskApp, async_mode='threading', manage_session=False)

def createApp():
    flaskApp.secret_key = "super secret"
    socketio.run(flaskApp, host='0.0.0.0', port=80)

start.py

代码语言:javascript
复制
app.register_blueprint(monitor.blueprint)
...
createApp()

为什么烧瓶-SocketIO没有检测到我的Gevent安装?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 16:30:36

引用的文档部分引用了async_mode参数,以及默认情况下如何设置它。您正在设置async_mode='threading',以便禁用异步模式的自动选择。移除参数,然后根据您安装的内容,您将得到eventlet或gevent。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51330473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档