3

非同期のトルネードサーバーと相互作用するロングプルクライアントをトルネードに実装しようとしています。

何が起こるかは2つのことの1つです:

  1. クライアントのタイムアウト、または
  2. クライアントは、メッセージをブロックするのと同様に、バックグラウンドプロセス全体を完了した後、すべてのメッセージを一度に受信します

これは私が使用するクライアントです:

from tornado import ioloop
from tornado import httpclient

print "\nNon-Blocking AsyncHTTPClient"
import tornado.ioloop

def async_call(response):
        if response.error:
                response.rethrow()
        print "AsyncHTTPClient Response"
        ioloop.IOLoop.instance().stop()

http_client = httpclient.AsyncHTTPClient()
http_client.fetch("http://localhost:9999/text/", async_call)
ioloop.IOLoop.instance().start()

これは、長いポーリング/彗星のクライアントを作成する正しい方法ですか?

また、トルネードでサンプルの非同期サーバーを提供するために答えてくれる人にも感謝します。なぜなら、私はコメットされたトルネードサーバーを間違って書いているのかもしれません...私は一般的なロングポーリングプロセス全体に少し慣れていません。

4

1 に答える 1

6

トルネード自体には、長いポーリングメカニズムの上に構築されたチャットの優れた例があります

https://github.com/facebook/tornado/tree/master/demos/chat

それは私がすべてを理解するのに大いに役立ちました、そしてそれはサーバーとクライアントの両方を持っています。

于 2012-12-24T16:52:19.430 に答える