我尝试将实时数据流功能(类似于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)
或者是否还有一些其他方法我完全不知道?
感谢大家的帮助!