aiohttp
的 websocket 支持(即WebSocketResponse
)和websockets (都提供异步支持)有什么区别?它们可以混合吗?
2 回答
它们是由不同的人维护的两个不同的库。两者都建立在asyncio
.
websockets
旨在成为一个简单易用的库来实现 websockets 客户端和服务器,并且主要由单个开发人员维护。另一方面,它是由更大的团队aiohttp
维护的一个相当大的库,不仅提供 websockets,而且顾名思义,还提供 HTTP 功能。它的一些功能与and重叠,但以异步方式。flask
requests
在大小方面,websockets
大约是 4k LOC,而aiohttp
大约是 40k LOC。如果您只需要一个简单易用的 websockets 客户端,请选择websockets
. 如果您已经在使用aiohttp
并需要 websockets 功能,请使用aiohttp
必须提供的功能。我认为混合它们没有意义。
注意一个可能会迫使需要在 Debian 8 中支持系统 Python 的人做出选择的细节:aiohttp
将其最低支持版本设置为 Python 3.5.3(这是 Debian 9 中的系统 Python 版本)。
虽然aiohttp
人们有充分的理由做出这个决定,但较小的功能集websockets
允许该项目在 Debian 8 中保持对 Python 3.4.x 系统 Python 的支持,尽管您自己的应用程序代码进行了一些修改以兼容 Python 3.4:https ://websockets.readthedocs.io/en/stable/intro.html#python-lt-36