aiohttp和websockets有什么区别/兼容性?
问题描述:
aiohttp
的websocket支持(即WebSocketResponse
)和websockets(两者都提供异步支持)有什么区别?他们可以混合?aiohttp和websockets有什么区别/兼容性?
答
它们是由不同的人维护的两个不同的图书馆。两者都建立在asyncio
之上。
websockets
旨在成为一个简单易用的库来实现websockets客户端和服务器,并主要由single developer维护。另一方面,aiohttp
是一个非常大的库,由bigger team维护,不仅提供websockets,而且顾名思义还提供HTTP功能。它的一些功能与flask
和requests
重叠,但是以异步方式。
在尺寸上,websockets
约为4k LOC,而aiohttp
约为40k LOC。如果您只需要一个简单易用的websockets客户端,请转至websockets
。如果您已经在使用aiohttp
并且需要websockets功能,请使用aiohttp
必须提供的功能。我没有看到混合它们的一点。
你或许可以混合使用它们,但是有什么理由不想仅仅使用aiohttp的内置websockets? – shongololo
这两个都是在PEP 3156中引入的Python异步I/O支持之上,所以我认为它的性能真的很类似 – olmerg
autobhan似乎也是一种替代方案。 – Rhangaun