【发布时间】:2010-10-11 22:19:58
【问题描述】:
我想通过 HTTP 将数据推送到浏览器而不杀死我的 django/python 应用程序。
我决定使用 Comet 服务器来代理我的应用程序和客户端之间的请求(尽管我还没有真正弄清楚)。
我研究了以下引擎: 轨道的 彗星 埃贾伯德 码头
有没有人有使用这些服务器和部署它们的经验?关于这些主题的任何见解和链接都会很棒。谢谢。
【问题讨论】:
标签: python django comet daemon
我想通过 HTTP 将数据推送到浏览器而不杀死我的 django/python 应用程序。
我决定使用 Comet 服务器来代理我的应用程序和客户端之间的请求(尽管我还没有真正弄清楚)。
我研究了以下引擎: 轨道的 彗星 埃贾伯德 码头
有没有人有使用这些服务器和部署它们的经验?关于这些主题的任何见解和链接都会很棒。谢谢。
【问题讨论】:
标签: python django comet daemon
我需要做一些非常相似的事情。我找到了这个,但还没有时间正确地查看它:
django_evserver 是简单的 http 服务器 对于 Django 应用程序。它基于 libevent 库。主要优势 django_evserver 的特点是它提供 抢占 django 视图的方法。 您可以在几个 块,它们中的每一个都可以由 不同的 Django 视图。
使用这个想法可以使用 django_evserver 作为彗星服务器 django 应用程序。
【讨论】:
我建议研究一下 Twisted,他们的 twisted.web 服务器,以及在 Divmod 上完成的彗星工作。与传统的基于线程或进程的服务器相比,它们可以处理更多的并发连接,这正是您对此类事物所需要的。而且,是的,我已经使用 Twisted 构建了用于 COMET 的系统,同时将其他东西用于更前端的 Web 应用程序。每个部分都做得很好。
【讨论】:
如果您可以运行 Java,我会推荐 StreamHub Comet Server。
首先,考虑到您不需要“杀死”现有应用程序,JavaScript 包含的占用空间非常低,不到 10K。我用它来推送用户更新和在我正在构建的社交网站上聊天。我每天测试 1000+ 次点击,对 CPU 没有明显影响。
其次,在部署时,我遵循了一些示例,并且与使用 CometD 将我的头撞到墙上相比,我的启动和运行速度非常快。有一个很好的 Comet Hello World 入门指南和一个 Google Group 如果您遇到任何问题。
【讨论】:
一个选项是 Netty,它是基于 JBoss 的 Java NIO 的客户端-服务器套接字框架。比较和讨论see here。据报道,它在四核服务器上同时处理 100000 个打开的连接。
【讨论】:
如果您正在运行 IIS,您可以查看 WebSync (http://www.frozenmountain.com/websync),这是一个符合标准 (bayeux) 的彗星服务器和 .NET/IIS 客户端。如果您不想要额外的负载,按需版本是一种 SaaS 选项,可以减轻繁重的工作。
【讨论】:
如果您希望将 Django 与 Comet 服务器(Orbited)结合起来,请查看这个项目,我将在此处将 Django 和 Orbited 集成为“干净”和“真实世界”:http://github.com/clemesha/hotdot
该项目解决了“现实世界”问题,例如安全性和记录/过滤/修改在途 Comet 消息等 - 但仍在进行中。
【讨论】: