永続的な接続をサポートするTornadoWebでHTTPサーバーを作成するにはどうすればよいですか。
つまり、接続を閉じることなく、多くのリクエストを受け取り、それらに応答できるようになります。非同期で実際にどのように機能しますか?
永続的な接続を処理するためのハンドラーの書き方を知りたいだけです。実際にはどのように機能しますか?
私はそのようなハンドラを持っています:
class MainHandler(RequestHandler):
count = 0
@asynchronous
def post(self):
#get header content type
content_type = self.request.headers.get('Content-Type')
if not content_type in ACCEPTED_CONTENT:
raise HTTPError(403, 'Incorrect content type')
text = self.request.body
self.count += 1
command = CommandObject(text, self.count, callback = self.async_callback(self.on_response))
command.execute()
def on_response(self, response):
if response.error: raise HTTPError(500)
body = response.body
self.write(body)
self.flush()
execute は終了時にコールバックを呼び出します。
その方法で投稿が何度も呼び出され、クライアントからの httprequest ごとに 1 つの接続カウントが増加するという私の仮定は正しいですか? しかし、接続ごとに個別のカウント値がありますか?