如果启用了线程,为什么flask-socketio在uWSGI + gevent下保持http-polling

时间:2019-08-01 14:14:38

标签: uwsgi gevent flask-socketio

在uWSGI下使用gevent并禁用了线程,成功使用flask-socketio。您可以看到套接字连接已更改为真正的Websocket连接。

由于我们应用程序中的其他原因,我们希望启用线程(调用会阻塞的长期本机库调用,而gevent则无济于事)。一旦执行此操作,Websocket连接就永远不会真正更改为真正的Websocket连接-它保持在http轮询模式。

这就是兽的本质吗?关于线程的某些东西与fla​​sk-socketIO不兼容,还是我应该能够使它工作?

1 个答案:

答案 0 :(得分:0)

线程和gevent本质上是不兼容的,您必须选择其中之一。但是websocket仅在gevent下受支持,因此遗憾的是已经做出选择。

请注意,我可能是错的,但是当您在gevent之上引入线程时,我怀疑websocket连接不是唯一的问题。我想您也会因此而在长时间轮询中看到连接错误和重新连接。