1

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 では、接続ハンドラから返されたときにこのソケットを閉じるだけです。

4

1 に答える 1

0

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 をオーバーライドすることが、私にとってはうまくいった答えです。

于 2015-10-28T11:09:27.970 に答える