在gevent中检测客户端断开连接
问题描述:
如果我使用队列生成响应数据,应该如何检测客户端是否与我的gevent webserver断开连接?现在我不断收到Broken pipe
错误,但我不太明白我应该在哪里发现这个异常(回溯只包括gevent自己的pywsgi.py
和socket.py
文件,而且没有我的代码)。谢谢。在gevent中检测客户端断开连接
答
我不知道如何从WSGI应用程序返回一个队列(如果我正确理解你在做什么)。
如果你能以不同的方式构建应用程序,并使用WSGI的write(),那么你可以赶上这样的插座例外:
def application(environ, start_response):
write = start_response('200 OK', [])
try:
write("response")
except socket.error, ex:
print ex
谢谢,我知道了。现在我使用队列在greenlet之间传输数据(消息在其他地方生成)并使用wsgi write()发送数据。 – dpq 2012-04-19 10:00:42