【问题标题】:What are the advantages (or needs) of using tornado with Pusher for a Django application?将 Tornado 与 Pusher 一起用于 Django 应用程序有哪些优点(或需要)?
【发布时间】:2013-10-09 10:09:08
【问题描述】:

我们是一个小团队,开始计划如何在 Django 中开发聊天服务,使用 Pusher 实时推送消息。

到目前为止,我们了解到我们需要一种将消息推送到 Android 和 Web 浏览器客户端的异步方式,并且我们选择了托管解决方案 (Pusher),而不是实现我们自己的解决方案,可能使用 sockjs 和 tornado。有了 Pusher!,我们认为我们不需要 Tornado 来做任何事情!

在 Python 模块文档 (https://github.com/pusher/pusher_client_python) 中很少提到 Django,但是有一个 Tornado 部分说:“使用 Tornado Web 服务器触发事件​​......”。所以我们想知道为什么我们需要使用 Tornado 来触发从我们的服务器到 Pusher 的事件,或者它有什么用处。

提前致谢。

【问题讨论】:

    标签: django tornado pusher


    【解决方案1】:

    我能想象的唯一场景是,当您需要一次触发多条消息时,异步的 tornado 显然比 django(或任何其他同步 Web 框架)更有利,因为后者必须触发消息并等待每次都回复。

    【讨论】:

    • 我猜是这样,但是当我们的应用服务器触发消息推送到推送器时,推送器的预期响应是“OK,已收到”,对于每条消息,我们的服务器都应该毫无延迟地给出该响应。我的意思是:当客户端在聊天中等待新消息时,我可以看到拥有异步系统和推送消息的方式的优势,以便在没有响应交付时不会阻塞服务器。 .但是当你期待和来自对方的即时响应时,我看不到需要!您认为 Tornado 在这种情况下会表现得更好吗?提前非常感谢!
    • 现在考虑得更好了(感谢您的回答),很明显,任何时候您拉到外部服务都必须期待延迟,处理其他服务会更有效率推送时请求向我们发送每个请求的响应。
    【解决方案2】:

    链接文档的意思是,如果您同时使用 Pusher 和 Tornado,您应该做一些额外的配置,以使 Pusher 与 Tornado 的非阻塞模型很好地工作。使用同步并发的框架不需要任何额外的工作,因此不需要在文档中特别提及。您可以继续使用 Tornado 或 Django(或 Flask 等),具体取决于您的偏好和应用程序的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 2021-12-23
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多