类似Twitter的PUSH /数据流服务器端实现?

时间:2016-08-24 18:05:37

标签: python django websocket

我尝试将实时数据流功能(类似于Twitter的流API)实现到我已制作的django 1.9网络应用中。

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

似乎流请求只是普通URL的正常GET / POST请求。但是,此URL将异步数据发送回客户端。看起来这个API和twitter流服务器之间没有任何持久的连接。即,没有tcp套接字,没有WebSocket,没有那样的。我尝试过使用StreamingHttpResponse,但这似乎只是构建一个数据队列,一次性刷新到客户端而不是分段。

我已经通过典型的tcp套接字工作了,但这需要以与Python-Twitter库非常相似的方式工作。

如果有人试图重新创建这样的东西(在Python中),他们会怎样?这对我来说似乎是黑魔法。

有没有办法只是一次又一次地将HTTP数据发送回客户端,而不需要每次都有新请求(或阻止django app的其余部分)?

例如,像这样:

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

或者是否还有一些其他方法我完全不知道?

感谢大家的帮助!

0 个答案:

没有答案