2.依赖

优质
小牛编辑
131浏览
2023-12-01

Flask-SocketIO兼容python2.7和python3.3+。这个异步的服务的包的依赖可以有三个选择:

  • eventlet:这是最好的选择,支持长连接(long-polling)和websocket传输。

  • gevent: 支持许多不同的配置,长连接传输是完全支持的,但是不同于eventlet,gevent并没有原生支持websocket。添加websocket(功 能)有两种方法:gevent-websocket包为gevent添加了websocket支持,但是不幸的是,这个包只能用于python2;至于另 外一个选择,是用uWSGI网络服务器,这个能够在功能上支持websocket。gevent依然是可操作的选择,但是优先级略微地低于 eventlet。

  • 基于Werkzeug开发的flask服务器也是可行的,使用缺乏可操作性的caveat,它仅可以被用于简化workflow的开发。这个方案仅支持长连接方式传输。

这 个扩展自动寻找已安装的异步框架来使用。最优先的是eventlet,其次是gevent。在gevent中,对于websocket的支持,uWSGI 是优先考虑的,其次是gevent-websocket。如果eventlet和gevent都没有被安装,那么就使用flask- development将会被启用。

如果使用多进程,一个消息队列服务将会被进程用来协调操作,例如广播。支持这个队列的有Redis,RabbitMQ,还有其他由Kombu支持的包。

在客户端,Javascript官方的SOcket.IO可以用来创建一个与服务端通信的连接。这里有许多用Swift,Java,C++编写的官方客户端。非官方的客户端也是可以工作的,只要他们支持了Socket.IO协议。