1

トルネードで、クライアントによって書き込みがACKされたときにコールバックを受信する方法はありますか?

私のアプリケーションは、web.asynchronousを使用して特定の重要なメッセージをクライアントに配信しており、ネットワークの問題が発生した場合、アプリケーションがfinish()を呼び出して、クライアントが実際にデータを受信しないようにすることができます。TCP ACKが返されるのを待つことは、データを受信済みとしてマークする前に、クライアントが実際にデータを受信したことを確認するために必要なすべてのことです。ただし、竜巻のフレームワーク内でこれを行う方法はわかりません。

これを行うには、tornado.netutilとtornado.iostreamの内部を掘り下げ始める必要がありますか、それとも何かが足りませんか?

クライアントにメッセージを受信したことを確認する後続のHTTPリクエストを実行させることはできますが、現時点ではクライアントの変更はかなり難しく、場合によってはクライアントの帯域幅が高くなります。

4

1 に答える 1

1

flush()のコールバックがまさにこれを行うことがわかりました。

だからあなたは次のことをするかもしれません

self.write(data)
self.flush(callback = do_something )
于 2012-05-27T19:33:03.390 に答える