选择和部署彗星服务器

时间:2009-03-07 12:51:54

标签: python django comet daemon

我想通过HTTP将数据推送到浏览器,而不会杀死我的django / python应用程序。

我决定使用彗星服务器来代理我的应用程序和客户端之间的请求(虽然我还没有真正弄清楚它)。

我查看了以下引擎: 绕行 的cometd ejabberd 码头

有没有人有使用这些服务器并部署它们的经验?有关这些主题的任何见解和链接都会很棒。谢谢。

6 个答案:

答案 0 :(得分:5)

我建议调查Twisted,他们的twisted.web服务器,以及在Divmod上完成的彗星工作。与传统的基于线程或进程的服务器相比,它们可以处理更多的并发连接,这正是您需要的。而且,是的,我使用Twisted for COMET构建系统,同时使用其他东西用于旁边的更多前端Web应用程序。它可以很好地处理每个部分做得最好的事情。

答案 1 :(得分:2)

我需要做一些非常相似的事情。我找到了这个,但还没来得及正确看待它:

  

django_evserver是简单的http服务器   对于Django应用程序。它基于   解放图书馆。主要优势   django_evserver是它提供的   抢占django观点的方法。   您可以使用多个网站进行渲染   块,每个都可以处理   不同的django观点。

     

使用这个想法可以使用   django_evserver作为彗星服务器   django应用程序。

http://code.google.com/p/django-evserver/

答案 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消息等 - 但仍在进行中。