【问题标题】:Django - Real Time Notification SystemDjango - 实时通知系统
【发布时间】:2015-12-19 13:13:59
【问题描述】:

我是 Django 新手并正在构建自己的应用程序。我想将通知系统(个人、组级和广播)从服务器集成到最终用户。每当他登录他的帐户时,通知栏就会像在 facebook 中一样显示。

当前使用:Django 1.8 和 Python 2.7

我已经浏览了许多链接或博客来了解。我遇到了以下几个选项:

  1. Django gevent Socketio:Django 1.8 不支持 到目前为止,我已经在 Django 1.8 中完成了所有工作。请告诉我,在支持和功能方面,我在切换到 Django 1.6 时可能会遇到多少问题。

  2. Pusher:我不太清楚。将 Pusher 用于当前现有应用程序的可行性和实用性有多大。是否存在兼容性问题?

  3. Swampdragon:似乎与 Django 1.8 存在一些兼容性问题

  4. Django-Tornado,Centrifuge:我有点害怕更改整个代码。另外,不知道未来的问题,我可能会面临。

我的问题:

  1. 请说明最好选择哪个,因为在后期很难转移到另一个。

  2. 此外,切换到 Django 1.6 是一个更好的主意,以支持 Swampdragon 和 Django Socketio。

请提供可能有帮助的链接。

如果我错了,请纠正。我需要您的宝贵建议。

【问题讨论】:

    标签: django websocket push-notification pusher django-socketio


    【解决方案1】:

    您可以停止考虑单体系统并重新考虑微服务模式,您应该至少从以下服务开始:

    1. 用户界面和核心应用

      此服务是您现有的 django 1.8 应用程序,没有什么新东西。将此用于您的 UI。

    2. Websocket 服务

      使用您喜欢的任何框架为您的 websocket 创建一个新服务,例如 tornado + django 或任何其他框架/平台

    这样您的核心应用程序就没有任何“添加剂”,您可以轻松地使用 django 开发它。然后,您可以向其他服务添加任何其他依赖项,而不会因庞大的依赖项列表对所有系统造成过多的负担。

    看看下面的链接:http://microservices.io/patterns/microservices.html

    【讨论】:

      【解决方案2】:

      我也在研究同样的问题。有一些开源但可定制的解决方案,例如,

      其中,我正在考虑淘汰django-websocket-redis,因为我使用 nginx+uwsgi 服务器设置,而且它看起来很有希望。顺便说一句,如果您分享您的发现,这将对每个人都有用。

      对于您的问题,

      1) Swampdragon+Pusher 是一个很好的组合,因为它减少了许多需要实现的核心内容。

      2) 向后移植并不总是一种好的做法。除非它阻碍您的应用开发,否则切勿这样做。

      更新:现在我们有Django channels(官方承认)。我将它用于我的一个实时项目,到目前为止,它在大量用户的实时更新中表现良好。

      【讨论】:

        猜你喜欢
        • 2014-07-03
        • 1970-01-01
        • 2014-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多