【问题标题】:websocket server for django application用于 django 应用程序的 websocket 服务器
【发布时间】:2013-09-01 07:48:26
【问题描述】:

我有一个 django 应用程序需要部署在 Apache HTTP Server 下,我还需要将事件实时推送到客户端的 Web 浏览器。 我对 python 比较陌生,谁能建议一些 websocket 服务器可以在 Python+Django+Apache 中工作?

【问题讨论】:

    标签: python django websocket socket.io tornado


    【解决方案1】:

    Django 是一个同步网络服务器。这意味着您不能直接使用 websocket。但是你有多种选择在 Django 中做 websocket。

    使用完整的 Python 堆栈来完成: 使用 Tornado 和 Django。你可以关注这个post

    使用Nodejs + socket.io + 消息代理:关注这种类型的tutorial

    你会发现使用 node.js 和 socket.io 比使用 tornado 有更多的资源来帮助你做到这一点。

    【讨论】:

    • 我必须使用的环境是python+django,django可以轻松部署在Tornado上吗?第二个选项似乎更复杂?
    • 第二个选项增加了你的 web 堆栈的复杂性:这意味着添加到 python 中你必须处理 javascript 语言。另外,您将使用消息代理(redis)。这取决于你的需要。如果您更喜欢使用 python,请使用 Tornado。 Tornado 可以毫无问题地运行 Django 服务器。见this link
    • 谢谢亚历克斯,我现在会去第一个选项试试。我知道 socket.io 应该比 Tornado 表现更好,是这样吗?以后我也会尝试第二个选项。
    • 您建议在生产环境中使用哪个选项?稳定性最重要,性能次之。
    • 好吧。我唯一能说的是socket.io在所有浏览器中都非常好supported;)
    【解决方案2】:

    随着新的更新 (Django 1.10) Django 现在支持 websockets。

    请阅读本文了解更多信息:In deep with Django channels - the future of real time apps in Django

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2013-06-28
      • 2023-03-17
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多