aiohttp
的websocket支持(即WebSocketResponse
)和websockets(两者都提供异步支持)之间有什么区别?他们可以混在一起吗?
答案 0 :(得分:3)
它们是由不同的人维护的两个不同的库。两者都建立在asyncio
之上。
websockets
旨在成为一个简单易用的库来实现websockets客户端和服务器,并且主要由single developer维护。另一方面,aiohttp
是由bigger team维护的更大的库,它不仅提供websockets,而且顾名思义,它还提供HTTP功能。它的某些功能与flask
和requests
的功能重叠,但是以异步方式重叠。
就尺寸而言,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