我想通过HTTP将数据推送到浏览器,而不会杀死我的django / python应用程序。
我决定使用彗星服务器来代理我的应用程序和客户端之间的请求(虽然我还没有真正弄清楚它)。
我查看了以下引擎: 绕行 的cometd ejabberd 码头
有没有人有使用这些服务器并部署它们的经验?有关这些主题的任何见解和链接都会很棒。谢谢。
答案 0 :(得分:5)
我建议调查Twisted,他们的twisted.web服务器,以及在Divmod上完成的彗星工作。与传统的基于线程或进程的服务器相比,它们可以处理更多的并发连接,这正是您需要的。而且,是的,我使用Twisted for COMET构建系统,同时使用其他东西用于旁边的更多前端Web应用程序。它可以很好地处理每个部分做得最好的事情。
答案 1 :(得分:2)
我需要做一些非常相似的事情。我找到了这个,但还没来得及正确看待它:
django_evserver是简单的http服务器 对于Django应用程序。它基于 解放图书馆。主要优势 django_evserver是它提供的 抢占django观点的方法。 您可以使用多个网站进行渲染 块,每个都可以处理 不同的django观点。
使用这个想法可以使用 django_evserver作为彗星服务器 django应用程序。
答案 2 :(得分:2)
如果你可以运行Java,我会推荐StreamHub Comet Server。
首先,关于您不需要“杀死”现有应用程序的问题,JavaScript包含的内存非常低,不到10K。我用它在我正在建立的社交网站上推送用户更新和聊天。我每天测试1000次以上,并且对CPU没有明显的影响。
其次,在部署时,我遵循了一些示例,并且与使用CometD将我的头碰到墙壁相比,它的运行速度非常快。有一个很好的Comet Hello World入门指南和一个Google Group,如果你遇到任何问题。
答案 3 :(得分:2)
一个选项是Netty,基于JBoss的Java NIO的客户端 - 服务器套接字框架。进行比较和讨论see here。据报道,它在四核服务器上处理100000个同时打开的连接。
答案 4 :(得分:2)
如果您正在运行IIS,则可以查看WebSync(http://www.frozenmountain.com/websync),这是一个符合标准的(Bayeux)彗星服务器和.NET / IIS客户端。如果您不想要额外的负载,On-Demand版本是一个SaaS选项,可以减轻繁重的负担。
答案 5 :(得分:2)
如果您希望将Django与Comet服务器(Orbited)结合使用,请检查此项目我将尽可能将Django和Orbited整合为“干净”和“真实世界”:http://github.com/clemesha/hotdot
该项目解决了“真实世界”的问题,如安全和记录/过滤/修改在途Comet消息等 - 但仍在进行中。