加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-3.x – 目前可用于python3上带烧瓶的websockets的最佳选

发布时间:2020-12-20 11:45:43 所属栏目:Python 来源:网络整理
导读:目前我看到以下库可用于使用带烧瓶的websockets: flask-sockets(可能已过时) flask-SocketIO gevent-websockets(以上2取决于此) However gevent-websockets is not yet python3 compatible(atleast it is not install-able via pip). Which makes the other
目前我看到以下库可用于使用带烧瓶的websockets:

> flask-sockets(可能已过时)
> flask-SocketIO
> gevent-websockets(以上2取决于此)

However gevent-websockets is not yet python3 compatible(atleast it is not install-able via pip). Which makes the other 2 unusable as well.

使用带有烧瓶的腹板有没有其他替代方案?还是龙卷风是最好的选择?

解决方法

首先,请注意Flask-SocketIO与其他两个不同.它包装了Socket.IO协议,而不是原始的WebSocket.这使它能够支持使用HTTP长轮询模拟的类似WebSocket的接口,用于不支持WebSocket协议的客户端.

说到Flask-SocketIO,请注意这个扩展即将进行大修.

目前的官方发布(0.6)取决于gevent,gevent-socketio和gevent-websocket.不幸的是,gevent-socketio作为一个项目早已不复存在,并且仍然停留在Socket.IO协议的一个非常旧的版本上,这迫使你使用一个古老的Javascript客户端.

即将推出的Flask-SocketIO 1.0版本是一个完全重写版本,主要与0.6版本兼容,但它支持Python 2和Python 3,并且设计允许不同的机制用于网络和并发.版本0.6的gevent-socketio依赖性被替换为两个名为python-socketio和python-engineio的新包,它们实现了当前版本的Socket.IO协议,并支持所有官方Socket.IO客户端(Javascript,Swift和C).

对于低级依赖项,您基本上有三个选项:

> Eventlet

到目前为止,Eventlet是Py2和Py3上性能最高且最稳定的选项. WebSocket支持是eventlet的原生支持,因此只需在virtualenv中安装eventlet,即可使Flask-SocketIO在最佳配置下工作.
> gevent和gevent-websocket

如果由于任何原因你更喜欢gevent,那也可以,但在我的测试中,它的表现不如eventlet.如果你想在使用gevent时访问WebSocket,那么你还需要安装包gevent-websocket. gevent和gevent-websocket都已移植到Python 3,但它太新了.
> Werkzeug(或任何其他多线程WSGI兼容服务器)

您还可以使用Flask自己的Web服务器.在此模式下,扩展仅适用于长轮询模式.与其他两个相比,性能显然很糟糕,但是对于开发和调试来说,能够让所有工作都运行而不必运行eventlet或gevent,并带来所有复杂性,这是很好的.

截至今天(2015年10月4日),新的Flask-SocketIO扩展程序有一个功能齐全的beta版本.官方发布即将推出.您可以使用以下命令安装测试版:

pip install flask-socketio==1.0b1

代码可以在git repo:https://github.com/miguelgrinberg/Flask-SocketIO/tree/v1.0的1.0分支上找到.

免责声明:我确信现在已经很清楚,但为了以防万一,请注意我是Flask-SocketIO,python-socketio和python-engineio的作者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读