twitterlike推送/数据流服务器端实现?

2024-06-26 14:50:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将实时数据流特性(类似于Twitter的streamapi)实现到我制作的django 1.9web应用程序中。你知道吗

在查看了Python中Python-Twitter库的流部分之后,在twitter/api.py中,我对这个实现的服务器端是如何工作的有几个问题。你知道吗

似乎流请求只是对普通URL的普通GET/POST请求。但是,此URL将异步数据发送回客户端。这个API和twitter流服务器之间似乎没有任何类型的持久连接。也就是说,没有tcp套接字,没有WebSocket,没有类似的。我尝试过使用StreamingHttpResponse,但这似乎只是构建了一个数据队列,以便一次将所有数据刷新到客户端,而不是逐段刷新。你知道吗

我已经让它在典型的tcp套接字上工作,但是它需要以非常类似于Python-Twitter库的方式工作。你知道吗

如果有人试图重新创建这样的东西(在Python中),他们会怎么做?在这一点上,我觉得这就像是黑魔法。你知道吗

有没有一种方法可以一次又一次地将HTTP数据发送回客户机,而不需要每次都发出新的请求(或者阻塞django应用程序的其余部分)?你知道吗

例如,类似这样的情况:

def stream(request):
    while True:
        if newServerAction:
            HttpResponse(newServerAction, content_type='application_json').send(request)
        else:
            sleep(1)

或者有什么其他的方法是我完全没有的?你知道吗

谢谢大家的帮助!你知道吗


Tags: 数据django方法web应用程序url客户端request