我正在尝试在 Tornado 中实现长拉客户端,它与异步 Tornado 服务器交互。
发生的事情是两件事之一:
- 客户端超时,或者
- 客户端在完成后立即收到所有消息整个后台进程,类似于阻塞进程
这是我使用的客户端:
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()
这是编写长轮询/comet 客户端的正确方法吗?
我也很感激那些愿意在 Tornado 中提供示例异步服务器的人,因为我可能错误地编写了 cometed Tornado 服务器......我对整个长轮询过程有点陌生一般而言。
我是一名优秀的程序员,十分优秀!