3

我正在尝试在 Tornado 中实现长拉客户端,它与异步 Tornado 服务器交互。

发生的事情是两件事之一:

  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()

这是编写长轮询/彗星客户端的正确方法吗?

对于那些回答在 Tornado 中提供示例异步服务器的人,我也将不胜感激,因为可能是我错误地编写了彗星 Tornado 服务器......我对整个长轮询过程有点陌生。

4

1 回答 1

6

Tornado 本身有一个很好的聊天示例,建立在长轮询机制之上

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

它对我理解一切有很大帮助,它同时具有服务器和客户端。

于 2012-12-24T16:52:19.430 回答