Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django和Long轮询_Django_Comet_Long Polling_Cometd - Fatal编程技术网

Django和Long轮询

Django和Long轮询,django,comet,long-polling,cometd,Django,Comet,Long Polling,Cometd,我需要在我的应用程序中实现长轮询来检索事件。但是我不知道怎么做。我知道长轮询的概念,即在事件发生之前保持连接打开。但是我如何在我的项目中实现这一点呢。如果你能给我一个简单的关于客户端和我想的观点的长轮询示例,我将非常感激。谢谢大家! 免责声明:这个答案早已过时。到2020年,解决这一问题的方法有很多,只是其中一种选择 不清楚你想要什么。。。至少不会me@JoranBeasley还有:@JoranBeasley嗨!我有一个用户上传视频的应用程序。所以当有人上传一段视频时,我想通知其他用户一段新的视

我需要在我的应用程序中实现长轮询来检索事件。但是我不知道怎么做。我知道长轮询的概念,即在事件发生之前保持连接打开。但是我如何在我的项目中实现这一点呢。如果你能给我一个简单的关于客户端和我想的观点的长轮询示例,我将非常感激。谢谢大家!

免责声明:这个答案早已过时。到2020年,解决这一问题的方法有很多,只是其中一种选择


不清楚你想要什么。。。至少不会me@JoranBeasley还有:@JoranBeasley嗨!我有一个用户上传视频的应用程序。所以当有人上传一段视频时,我想通知其他用户一段新的视频已经上传,比如twitter、facebook或者其他。另外,如果有人对他们的视频发表评论,我想通知用户。但我认为我可以做到这一点,如果我知道如何实现长轮询,并通知用户新上传的视频。所以,我需要知道的是,实现长轮询来通知用户数据库中正在保存的新对象。希望我是清楚的。请问我是不是。谢谢。您指向websocket解决方案的链接已断开。我使用ajax从客户端实现了类似于Django的东西。但仍然存在超时的问题。gevent是一个可能的(好的)解决方案吗?我已经修复了链接。gevent是一个好的解决方案吗?视情况而定。你应该很好地理解greenlet是如何工作的,否则你可能会遇到非常奇怪的问题:你的链接指向一个项目,其中最后一次提交可以追溯到7个月。看起来不太活跃。
import time

def long_polling_view(request):
    for i in range(30): #e.g. reopen connection every 30 seconds
        if something_happened():
            ...
            return http.HttpResponse(
                arbitrary_JSON_content,
                mimetype='application/javascript'
            )
        time.sleep(1)
    return http.HttpResponse({}, mimetype='application/javascript')