在flask API中集成实时连接的最佳选择是什么?

时间:2017-09-21 13:04:14

标签: python flask

目前,我们使用Flask开发了一个API,它采用传统的请求 - 响应方式(客户端是移动应用程序)。此API在远程服务器上使用Apache托管。我们想要做的是整合服务器和客户端之间的实时连接(就像聊天应用程序一样)。这是我被卡住的地方。我需要在这里为框架做出选择。将Tornado与Flask一起使用将不是一个好选择,因为Tornado是非阻塞的但是Flask阻挡了。在这种情况下,最好的选择是什么?

1 个答案:

答案 0 :(得分:2)

我认为今天为Web应用程序提供实时功能的默认解决方案是websockets(请使用google Flask + websockets)。如果并发是一个问题(即许多持久的,同时的连接),那么"链"处理websockets的软件应该是非阻塞的(否则很多线程会在什么都不做的情况下耗尽你的资源)。你可以继续使用flask,因为它支持gevent(Python stdlib的非阻塞猴子补丁),但是你的nginx可能比Apache作为反向代理更好,因为它一直是非阻塞的。例如,nginx + gevent + flask将为您提供非阻塞设置。

就个人而言,我非常喜欢Tornado,但是如果你已经在Flask上做了很多工作,我会不愿意在你的应用程序中引入另一个框架。