【问题标题】:how do I make django and tornado communicate with each other我如何让 django 和 tornado 相互通信
【发布时间】:2018-04-17 20:45:55
【问题描述】:

我在 Django 中有一个社交网络应用程序,我想在我的应用程序中集成实时通知和消息传递功能。

我的朋友可以构建一个龙卷风应用程序,但我想基本上将它们连接在一起(我猜如果我错了,我必须让一个 REST API 纠正我)

我怎样才能从 Django 中完成这些任务

  • 在我登录时自动向 WebSocket(tornado) 进行身份验证 django 应用程序
  • 导入我所有的朋友
  • 如果用户没有收到消息,发送龙卷风信号发送通知

类似的事情

我该怎么做这样的事情。

(顺便说一句,我不想​​使用 django 频道,因为它相当新)

【问题讨论】:

  • django-channels 已经存在几年了。它已被制作成一个官方的 Django 项目。我觉得挺稳定的。如果您希望快速创建项目,我认为您应该使用它。
  • 您可以同时使用 Tornado 和 Django。您必须使用消息队列和 Redis 之类的内存数据库。如果你有时间,你可以学习这些技术。将来会对你有所帮助。如果你想快速建立一个项目,我认为这不是你想要的方式。
  • 我相信让事情变得稳定而不是快速完成。这种使用外部框架的技术已经存在了很长时间,我只是不信任渠道。通道也不是异步的,在它下面运行就像一个同步框架,这就是为什么我不想进入这个。
  • django-channels 是异步的。阅读FAQs。此外,通道在单独的进程中运行,因此与运行“外部框架” 非常相似。而且,无论您是否信任它,它都是稳定的。我想说的是,仅仅为了实现实时通知,在 Django 旁边设置 Tornado 的所有麻烦都是没有意义的。无论如何,如果你真的愿意这样做,请查看Message Queues——这就是 Tornado 和 Django 可以交流的方式。
  • 自您上次发表评论以来,我一直在研究频道,并且正在深入研究。我会尝试使用渠道来实现它

标签: django rest websocket tornado


【解决方案1】:

您可以使用 ZeroMQ 或 RabbitMQ 等消息代理库来帮助它们相互通信(Django 实例和 Tornado websockets 组件)。 它们提供了多种消息架构,例如服务器-客户端或发布者-订阅者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2012-04-08
    • 1970-01-01
    • 2011-10-12
    • 2013-05-03
    • 2021-11-07
    • 1970-01-01
    相关资源
    最近更新 更多