在gevent中检测客户端断开连接

问题描述:

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

我不知道如何从WSGI应用程序返回一个队列(如果我正确理解你在做什么)。

如果你能以不同的方式构建应用程序,并使用WSGI的write(),那么你可以赶上这样的插座例外:

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

谢谢,我知道了。现在我使用队列在greenlet之间传输数据(消息在其他地方生成)并使用wsgi write()发送数据。 – dpq 2012-04-19 10:00:42