aiohttp和websockets之间有什么区别/兼容性?

时间:2016-05-16 14:41:03

标签: python websocket python-asyncio aiohttp

aiohttp的websocket支持(即WebSocketResponse)和websockets(两者都提供异步支持)之间有什么区别?他们可以混在一起吗?

2 个答案:

答案 0 :(得分:3)

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

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

就尺寸而言,websockets约为4k LOC,而aiohttp约为40k LOC。如果您只需要一个简单易用的websockets客户端,请转到websockets。如果您已经在使用aiohttp并且需要websockets功能,请使用aiohttp提供的功能。我没有看到混合它们的重点。

答案 1 :(得分:0)

注意到一个细节,可能会迫使需要支持Debian 8中的系统Python的人们选择:aiohttp将其minimum supported version设置为Python 3.5.3(这是Debian中的系统Python版本) 9)。

尽管aiohttp人有充分的理由做出决定,但websockets中较小的功能集使该项目可以维护对Debian 8中Python 3.4.x系统Python的支持,尽管其中有些修改您自己的应用程序代码以使其与Python 3.4兼容:https://websockets.readthedocs.io/en/stable/intro.html#python-lt-36