5

aiohttp的 websocket 支持(即WebSocketResponse)和websockets (都提供异步支持)有什么区别?它们可以混合吗?

4

2 回答 2

11

它们是由不同的人维护的两个不同的库。两者都建立在asyncio.

websockets旨在成为一个简单易用的库来实现 websockets 客户端和服务器,并且主要由单个开发人员维护。另一方面,它是由更大的团队aiohttp维护的一个相当大的库,不仅提供 websockets,而且顾名思义,还提供 HTTP 功能。它的一些功能与and重叠,但以异步方式。flaskrequests

在大小方面,websockets大约是 4k LOC,而aiohttp大约是 40k LOC。如果您只需要一个简单易用的 websockets 客户端,请选择websockets. 如果您已经在使用aiohttp并需要 websockets 功能,请使用aiohttp必须提供的功能。我认为混合它们没有意义。

于 2017-03-30T04:43:37.067 回答
0

注意一个可能会迫使需要在 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

于 2019-02-05T09:06:29.447 回答