Подтвердить что ты не робот

MQTT против XMPP, который я должен выбрать?

Обзор

Я отправляю сообщения туда и обратно между клиентом (Android-телефоном) и сервером (Windows Server). Используя постоянное соединение через TCP, какой протокол будет лучшим решением. Я смотрю на производительность, масштабируемость, размер сообщений и время автономной работы. Сообщения должны поступать в пункт назначения по порядку и не могут быть дублирующими.

MQTT

Это похоже на лучшее решение, но, похоже, мало примеров большой реализации с большим количеством пользователей. Я не уверен, могу ли я интегрировать это в сервер Windows, или если это будет другое приложение или сервер. Наконец, по всей видимости, в нем нет информации об этом вообще.

XMPP

У этого, похоже, много реализаций, примеров и даже книги:). Однако основная цель заключается в том, чтобы клиенты мгновенных сообщений и такие вещи, как Google Talk. Будет ли это оптимальным решением для обмена сообщениями между сервером и клиентом. Я знаю, что в настоящее время XMPP в основном используется в архитектуре клиентских и серверных приложений.

Пожалуйста, поправьте меня, если я ошибаюсь, и заранее заблаговременно за любые указания.

4b9b3361

Ответ 1

Это зависит от того, что вы пытаетесь сделать и какого оборудования вы используете.

MQTT имеет очень низкий уровень трафика. XMPP является протоколом обмена мгновенными сообщениями и имеет гораздо более высокие накладные расходы при обработке сообщений о присутствии между всеми клиентами.

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

Имейте в виду, что MQTT означает Telemetry Transport Message Queue Transport, т.е. это транспортный протокол и вообще не определяет формат сообщения - вам придется это предоставить; XMPP - это протокол мгновенных сообщений, который тщательно определяет все форматы сообщений и требует, чтобы все сообщения находились в XML.

В дополнение ко всему этому: MQTT - это протокол подписки на публикацию, XMPP - это протокол обмена мгновенными сообщениями, который может быть расширен (с использованием XEP-0060) для поддержки подписки на публикацию. Это нужно учитывать при создании вашей системы.

Мы находим MQTT тихим успехом. Ваше возражение может отличаться.

Все зависит...

Отслеживайте недавнее объявление LinkedIn, где они обсуждают использование MQTT в своем мобильном приложении.

Приветствия Марк

(Кстати, Энди был слегка отстранен от своей ссылки на нас. Мы находимся в Центре образовательных инноваций и технологий (CEIT), Университет Квинсленда, Брисбен, Австралия)

Ответ 2

Я думаю, что вкратце преимущества MQTT над XMPP:

  • Пропускная способность: меньше накладных расходов, более легкий
  • Двоичный vs обычный текст
  • QoS на месте (Fire-and-forget, по крайней мере один раз и ровно один раз)
  • Pub/Sub на месте (XMPP требует расширения XEP-0060)
  • Нет необходимости в XML-парсере

Ответ 3

Я думаю, что вы, вероятно, исправляете свою оценку XMPP в том, что это, прежде всего, чат-ориентированный протокол - он также довольно тяжелый и использует XML, значительно делая его многословным. Я знаю, что люди в CEIT в Uni of Brisbane специально изучили различия и оптимальное использование этих двух протоколов. MQTT - очень легкая и малая мощность - он используется для приложений телеметрии и датчиков более 10 лет и широко используется IBM и партнерами. Теперь люди находят, что простой протокол, подобный этому, идеально подходит для мобильных разработок.

Чего именно вы хотите достичь? Сайт mqtt.org направлен на предоставление хороших ссылок на контент. Также есть IRC-каналы и списки рассылки. Как мы можем помочь?