在gevent 1.0.2中,我使用的是StreamServer,在处理连接时,我在dict中保留套接字,以发送等待队列的事件,这在1.0.2中运行良好,但在最新版本1.1.x中则不然。套接字从连接处理程序返回时会关闭。我如何在python中使用最新的gevent来实现这一点。
def add_listener(self, stream_id , socket):
socket.send(OK_200)
self.event_listeners[stream_id][socket] = True
我只是在字典中打开套接字,在发生一些事件时广播事件。这在1.0.2版本中运行良好,但在最新的1.1.x版本中,从连接处理程序返回时只关闭此套接字。
获得IRC、的帮助
<champax> think you hit : https://github.com/gevent/gevent/issues/594
<champax> you myay have to override do_close
<champax> *may
<pigmej> no, just don't return from handler
<champax> yeah working too
<ahbinav> i am waiting on a queue for events and broadcasting to list of sockets when event arrives in the queue. So, overriding do_close should do for me. I will try that.
行为记录在案。在streamServer中什么都不做的情况下覆盖do_close是对我有效的答案。