首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebSockets和WSGI通过Gunicorn在一起

WebSockets和WSGI通过Gunicorn在一起
EN

Stack Overflow用户
提问于 2013-07-13 23:38:09
回答 1查看 4.7K关注 0票数 10

是否可以使用Gunicorn在一个(水瓶)应用程序中处理WebSockets和常规的WSGI视图?

我知道如何让websockets使用Gevent WSGI服务器工作,我可以获得一个与Gunicorn一起运行的常规WSGI应用程序和gevent工作人员,但是当我尝试使用Gunicorn从一个应用程序为这两者提供服务时,我会得到一个错误:

ValueError:视图函数没有返回响应

是否有可能通过一个应用程序为这两个人提供服务,使用gunicorn?我计划最终把这一切都抛在nginx的后面,我不反对将套接字拆分成另一个应用程序,让两个应用进行通信,只要这不需要太多额外的系统资源。在那之前,有办法这样做吗?

编辑:

我想出了如何让这件事奏效的办法。关键是: 1)更改gevent的日志记录函数;2)确保向gunicorn指定我使用的是geventWebSocketWorker类工作人员。

我在这个网站上找到了部分答案:http://d.hatena.ne.jp/Malan/20121007

为了记录在案,我认为最好是让一个服务器运行龙卷风/扭曲/高速公路(谢谢乔丹),另一个运行我的WSGI东西。但这不是我想要的

代码语言:javascript
运行
复制
def log_request(self):
    log = self.server.log
    if log:
        if hasattr(log, "info"):
            log.info(self.format_request() + '\n')
        else:
            log.write(self.format_request() + '\n')

import gevent        
gevent.pywsgi.WSGIHandler.log_request = log_request
from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer

sudo gunicorn -c gunicorn_config.py -k     "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" router:app       
EN

回答 1

Stack Overflow用户

发布于 2015-01-05 00:56:30

烧瓶-套筒可能会有帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17635155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档