python flask websocket_关于python 3.x:目前在python3上带有flask的websocket的最佳选项

目前,我看到以下可用于将烧瓶用于websockets的库:

烧瓶插槽(可能已过时)

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.

还有其他将烧瓶用于websockets的替代方法吗? 还是龙卷风是最佳选择?

不幸的是,此问题是题外话,因为您需要库建议。 话虽如此,我认为高速公路是websockets最受欢迎的解决方案之一。 还有ws4py。

@poke我清楚地提到了如何在flask中使用websockets,而flask是基于扩展的框架,一个依赖于库。 另外,这个问题对其他(非烧瓶扩展名)也很开放,因为它明确地询问了图书馆,因此有人可以提出其他建议

我确切地理解您在问什么,是的,但是正如您所说的那样:"它显然要求(要求)库",而这种问题在Stack Overflow上是不合时宜的。

首先,请注意Flask-SocketIO与其他两个不同。它包装Socket.IO协议,而不是原始WebSocket。这使它能够为不支持WebSocket协议的客户端支持使用HTTP长轮询模拟的类似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 ++) )。

至于低级依赖关系,基本上有三个选择:

事件

在Py2和Py3上,Eventlet都是迄今为止性能最高且最稳定的选项。 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的1.0分支上找到:https://github.com/miguelgrinberg/Flask-SocketIO/tree/v1.0。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值