【整理】Flask中的Websocket库:Flask-SocketIO vs Flask-Sockets

折腾:

【已解决】flask中实现websocket

期间,

虽然已经感觉miguelgrinberg的Flask-SocketIO更好用。

但是也还是去比较比较:

GitHub – miguelgrinberg/Flask-SocketIO: Socket.IO integration for Flask applications.

GitHub – kennethreitz/flask-sockets: Elegant WebSockets for your Flask apps.

到底哪个好。

有何区别。

去参考:

使用Flask SocketIO实现WebSocket | 风中飞舞

python – Websockets in Flask – Stack Overflow

Socket.IO

python使用websocket的几种方式 | 惊鸟的技术小站

GitHub – zeekay/flask-uwsgi-websocket: High-performance WebSockets for your Flask apps powered by uWSGI.

python – Websockets in Flask – Stack Overflow

-》

普通的HTTP请求:

Client请求服务器,得到服务器的响应,关闭请求

Server端,可以用少数的worker去处理大量的并发的请求

但是对于websocket,是长期链接,不断开的,

导致无法直接简单的使用单个的worker去处理每个socket的连接

解决办法是:

使用gevent

其内部是基于greenlets的,

利用greenlets的轻量级的特点,可以很方便的去实现扩容,

以便于实现同时连接多个Client

【总结】

Flask的Websocket库
作者 依赖的库
Kenneth Reitz
基于gevent和gevent-websocket做了封装
miguelgrinberg
Sever端:基于gevent和gevent-socketio
Client端:基于Socket.IO

总体上看,Flask-SocketIO的示例代码,更加简洁,而且作者还是在Flask-Sockets之后才之创作出Flask-SocketIO,所以理论上Flask-SocketIO更加先进。

【后记】

后来的折腾证明:



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量