13

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

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

我研究了以下引擎:轨道彗星 ejabberd 码头

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

4

6 回答 6

5

我建议研究一下 Twisted,他们的 twisted.web 服务器,以及在 Divmod 上完成的彗星工作。与传统的基于线程或进程的服务器相比,它们可以处理更多的并发连接,这正是您对此类事物所需要的。而且,是的,我已经使用 Twisted 构建了用于 COMET 的系统,同时将其他东西用于更前端的 Web 应用程序。每个部分都做它最擅长的事情,效果很好。

于 2009-03-07T21:06:49.513 回答
2

我需要做一些非常相似的事情。我找到了这个,但还没有时间正确查看它:

django_evserver 是 Django 应用程序的简单 http 服务器。它基于 libevent 库。django_evserver 的主要优点是它提供了抢占 django 视图的方法。您可以在几个块中渲染一个站点,每个块都可以由不同的 django 视图处理。

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

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

于 2009-03-07T15:44:34.840 回答
2

如果您可以运行 Java,我会推荐StreamHub Comet Server

首先,考虑到您不需要“杀死”现有应用程序,JavaScript 包含的占用空间非常低,不到 10K。我用它来推送用户更新和在我正在构建的社交网站上聊天。我每天进行 1000 次以上的测试,对 CPU 没有明显影响。

其次,在部署时,我遵循了一些示例,并且与使用 CometD 将我的头撞到墙上相比,我的启动和运行速度非常快。如果您遇到任何问题,这里有一个很好的Comet Hello World入门指南和一个Google 群组。

于 2009-07-21T15:09:20.480 回答
2

一种选择是 Netty,它是基于 JBoss 的 Java NIO 的客户端-服务器套接字框架。有关比较和讨论,请参见此处。据报道,它在四核服务器上同时处理 100000 个打开的连接。

于 2009-07-22T19:14:58.893 回答
2

如果您正在运行 IIS,您可以查看 WebSync ( http://www.frozenmountain.com/websync ),这是一个符合标准的 (bayeux) comet 服务器和 .NET/IIS 客户端。如果您不想要额外的负载,按需版本是一个 SaaS 选项,可以减轻繁重的工作。

于 2009-11-06T17:59:01.240 回答
2

如果您希望将 Django 与 Comet 服务器(Orbited)结合起来,请查看这个项目,我将在此处尽可能地将 Django 和 Orbited 集成为“干净”和“真实世界”:http: //github.com/克莱梅沙/热点

该项目解决了“现实世界”问题,例如安全性和记录/过滤/修改在途 Comet 消息等 - 但仍在进行中。

于 2009-11-30T07:45:54.340 回答