轻量级的异步IO网络服务器

7
据我所知,aiohttp 目前是基于 asyncio 构建的Web服务器的参考。虽然它是一项令人印象深刻的工作,但它并不完全符合我的特殊(奇怪)口味:除了作为Web服务器外,它还是一个Web应用程序框架(具有路由和其他功能),而且API相当类重。
我更喜欢的是一些仅提供最小界面(基本上是异步WSGI等效)的HTTP服务器。这样的东西已经存在了吗?

您在问题中提供的asyncio.org链接,似乎可以满足您的需求。该网站提供了aiowsgi,可能正是您需要的。 - dano
我看过那个,但很难评估它是否超出了实验阶段:GitHub存储库上没有太多活动-这并不一定是坏事,但一些同行评审肯定会有所帮助。 - AnC
1
请注意,在异步网络服务器上放置阻塞WSGI可能存在问题。如果WSGI请求在与异步循环相同的线程中运行,则会阻塞异步循环。你基本上拥有一个只能处理一次请求的WSGI服务器。对于单个主机/端口,如果您需要WSGI接口但同时想要异步网络服务器的某些底层优势,则最好查看“waitress”。 - Graham Dumpleton
据我所知,aiowsgi实际上是基于waitress(我相信它使用线程)-因此我之前的担忧可能只是一个实验:它似乎不是“纯”asyncio方法,而是将asyncio层叠在不同范例之上。 - AnC
1个回答

4

你可以尝试使用低级别的aiohttp.server,而不是aiohttp.web

aiohttp.server没有路由、中间件和其他高级功能。 但是,您需要使用aiohttp低级抽象,如messagepayloadresponse


谢谢 - 鉴于目前似乎还没有其他选择(尚?),这可能是我最好的选择。 - AnC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接