【问题标题】:Detecting client disconnects within gevent在 gevent 中检测客户端断开连接
【发布时间】:2012-04-18 17:58:23
【问题描述】:

如果我使用队列生成响应数据,我应该如何检测客户端是否与我的 gevent 网络服务器断开连接?现在我不断收到Broken pipe 错误,但我不太明白应该在哪里捕获这个异常(回溯只包括gevent 自己的pywsgi.pysocket.py 文件,没有我的代码)。谢谢。

【问题讨论】:

    标签: python exception-handling gevent disconnect


    【解决方案1】:

    如果您从 WSGI 应用程序返回队列,我不确定该怎么做(如果我理解正确的话)。

    如果您可以以不同的方式构建您的应用程序并使用 WSGI 的 write(),那么您可以像这样捕获套接字异常:

    def application(environ, start_response):
        write = start_response('200 OK', [])
        try:
           write("response")
        except socket.error, ex:
           print ex
    

    【讨论】:

    • 谢谢,我明白了。现在我使用队列在 greenlets 之间传输数据(消息在其他地方产生)并使用 wsgi write() 发送数据。
    猜你喜欢
    • 2014-04-14
    • 2020-08-27
    • 2014-01-24
    • 2011-02-27
    • 2020-01-15
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多