折腾:
期间,
虽然已经感觉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
python使用websocket的几种方式 | 惊鸟的技术小站
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更加先进。
【后记】
后来的折腾证明:
- Flask-SocketIO:废了我1天多,最终也还是无法正常使用;且及时可以用,也是不支持ws开头的地址访问的。
- Flask-Sockets:只需小半天折腾,即可使用。且支持ws开头的地址去访问。不过也还是不完美,没法支持用Class类的形式,去实现端口的处理。且也没法监听open,close,message。
转载请注明:在路上 » 【整理】Flask中的Websocket库:Flask-SocketIO vs Flask-Sockets