приложение чата: pubsubhubbub по сравнению с xmpp

Я не уверен на лучшем стеке для создавания приложения чата. В настоящее время я думаю о двух основных опциях:

  • торнадо Facebook
    • недостатки: не использует основной протокол чата xmpp, но pubsubhubbub
    • профессионалы: мне действительно нравится его простота за разработку (веб-сервер + webframework); pubsubhubbub также кажется более простым как протокол, чем xmpp; и я знаю Python
  • xmpp + Bosch, Пенджаб, ejabberd
    • недостатки: не знайте erlang; в целом кажется немного более твердым разработать
    • профессионалы: использование xmpp протокол

Приложение чата должно будет иметь следующее:

  • Личные сообщения
  • Общедоступные комнаты
  • Отдельные комнаты
  • История чата для комнат (не навсегда, просто последние сообщения n)
  • встраивание HTML
  • URL к чат-комнате

Обе опции кажутся масштабируемыми, таким образом, это не действительно мое беспокойство (мы думаем о запущении приложения в ec2 амазонки также). Я знаю, что существует проект, который создает xmpp сервер с помощью торнадо, но это не готово к производственному использованию, и наш крайний срок не является настолько большим. В основном мое основное беспокойство является простотой разработки по сравнению с так или иначе сожалением о более позднем использовании pubsubhubbub для разработки приложения чата, но я считал где-нибудь, что PubSubHubbub мог бы в конечном счете заменить XMPP, как REST заменил SOAP - поэтому, что Вы думаете?

7
задан Baum mit Augen 22 March 2019 в 10:50
поделиться

4 ответа

Перейти на XMPP.

По умолчанию ejabberd поддерживает все ваши требования. Вам не нужно будет видеть какой-либо erlang и писать собственные модули для ejabberd. А со Strophejs отлично подходит XMPP в браузере (что вы, по-видимому, и делаете).

Что касается вашего последнего вопроса о замене XMPP pubsubhubbub, не рассчитывайте на это. XMPP - это более 10 лет, надежная реализация с открытым исходным кодом и проприетарная совместимость как на клиенте, так и на сервере, и элегантная, поэтому никуда не денется.

И вы разрабатываете приложение для чата, для чего и был создан XMPP.

11
ответ дан 6 December 2019 в 12:48
поделиться

Facebook Tornao вообще не использует PubSubHubbub!

Выберите XMPP, он был разработан для того, что вы ищете. Tornado был разработан не для этого специально, а для длинных запросов на опросы в целом.

Не нужно использовать Punjab, модуль http-bind теперь делает довольно хорошую работу. Кроме того, вам не нужно изучать Erlang, так же, как вам не нужно изучать C при написании веб-приложения, использующего Apache :) Посмотрите такие вещи, как Aristochat. Единственное, с чем вам нужно будет поиграть, это конфигурация вашего XMPP-сервера и чатов, а затем Javascript для клиентской стороны (в браузере).

4
ответ дан 6 December 2019 в 12:48
поделиться

PubSubHubbub (PuSH) изначально никогда не предназначался для приложений чата. Иногда его называют «IM для Интернета». Я бы посоветовал вам просмотреть этот слайд: Ruby реального времени для Интернета в реальном времени, автор igrigorik

Вопрос в том, какое время вы хотите получить в реальном времени? Если вам нужна скорость, тогда XMPP - лучший вариант (500 мс), в то время как PuSH зависит от вашего канала и от того, как он ретранслируется. Помните, что с PuSH требуется всего 4 сетевых перехода, прежде чем контент достигнет подписчика.

Еще большая проблема заключается в том, что PuSH полагается на HTTP Post. Даже если вы в конечном итоге создадите приложение для чата на основе PuSH и скажете, что на более позднем этапе вы хотите сделать его доступным для других устройств или даже в качестве настольного приложения, вам придется ретранслировать тот же контент с помощью XMPP. Другое место, где вы будете проигрывать, - это то, что пользователям вашего чат-приложения будет очень сложно войти в систему из любого другого IM по своему выбору.

0
ответ дан 6 December 2019 в 12:48
поделиться

Если вам не нужна федерация через XMPP, но вы хотите быстро создать прототип и развернуть его наряду с масштабируемостью из коробки, посмотрите на пример сервера чата на одной странице кода веб-фреймворка Lift.

1
ответ дан 6 December 2019 в 12:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: