Django — система уведомлений в реальном времени

Я новичок в 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. Джанго-Торнадо, Центрифуга: Я немного боюсь менять весь код. Кроме того, не зная о будущих проблемах, с которыми я могу столкнуться.

Мои вопросы:

  1. Пожалуйста, объясните, какой из них лучше выбрать, так как на более позднем этапе трудно перейти к другому.

  2. Кроме того, переход на Django 1.6 — лучшая идея для поддержки Swampdragon и Django Socketio.

Пожалуйста, дайте ссылки, которые могут помочь.

Если я ошибаюсь, пожалуйста, поправьте. Мне нужны ваши ценные предложения.


person user3715032    schedule 22.09.2015    source источник


Ответы (2)


Я изучаю то же самое. Есть некоторые решения с открытым исходным кодом, но настраиваемые, например,

Из них я думаю выбросить django-websocket-redis, поскольку я использую настройку сервера nginx + uwsgi, и это выглядит многообещающе. Кстати, всем будет полезно, если вы поделитесь тем, что нашли.

И на ваши вопросы,

1) Swampdragon+Pusher — отличная комбинация, так как она снижает потребность во многих основных вещах. быть реализованным.

2) Backporting не всегда является хорошей практикой. Никогда не делайте этого, если это не блокирует разработку вашего приложения.

ОБНОВЛЕНИЕ: теперь у нас есть Каналы Django (официально подтверждено). Я использую его для одного из своих живых проектов, и пока он хорошо работает для обновлений в реальном времени с несколькими тоннами пользователей.

person Babu    schedule 12.02.2016

Вы можете перестать думать о монолитных системах и перейти к шаблону микросервисов, вы должны начать как минимум со следующих сервисов:

  1. Пользовательский интерфейс и основное приложение

    Этот сервис — ваше существующее приложение django 1.8, ничего нового. Используйте это для своего пользовательского интерфейса.

  2. Служба веб-сокетов

    Создайте новый сервис для своего веб-сокета с любой предпочитаемой платформой, например, tornado + django или любой другой фреймворк/платформа.

Таким образом, ваше основное приложение не будет иметь никаких «добавок», и вы можете чувствовать себя комфортно, разрабатывая его только с помощью django. Затем к другому сервису вы можете добавить любую другую зависимость, не перегружая всю систему этим огромным списком зависимостей.

Взгляните на следующую ссылку: http://microservices.io/patterns/microservices.html.

person Darwin    schedule 23.09.2015