Python 当从连接处理程序返回时,Gevent/greenlet关闭套接字。

Python 当从连接处理程序返回时,Gevent/greenlet关闭套接字。,python,sockets,real-time,gevent,greenlets,Python,Sockets,Real Time,Gevent,Greenlets,在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] =

在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. 
认为你击中了:https://github.com/gevent/gevent/issues/594
你可能需要重写do_close
*五月
不,只是不要从处理程序返回
是的,我也在工作
我正在等待事件队列,并在事件到达队列时向套接字列表广播。所以,覆盖do_close应该对我有用。我试试看。
这种行为被记录在案。在streamServer中无任何内容覆盖do_close是对我有效的答案。

从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. 
认为你击中了:https://github.com/gevent/gevent/issues/594
你可能需要重写do_close
*五月
不,只是不要从处理程序返回
是的,我也在工作
我正在等待事件队列,并在事件到达队列时向套接字列表广播。所以,覆盖do_close应该对我有用。我试试看。
这种行为被记录在案。在streamServer中不使用任何内容覆盖do_close是对我有效的答案