5

我是 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 的更好主意。

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

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

4

2 回答 2

5

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

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

对于你的问题,

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

2) 向后移植并不总是一个好习惯。除非它阻止您的应用程序开发,否则永远不要这样做。

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

于 2016-02-12T08:17:53.670 回答
1

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

  1. UI & 核心应用

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

  2. 网络套接字服务

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

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

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

于 2015-09-23T00:18:37.137 回答