Часто при обсуждении мессенджеров, при упоминании XMPP можно услышать слова:
Привет из двухтысячных! Неужели кто-то еще пользуется устаревшим протоколом? В XMPP до сих пор нет доставки файлов, сообщений, синхронизации, красивых клиентов?
Причина мифов о XMPP в том, что многим Jabber известен по мессенджерам из далеких двухтысячных годов и плохой осведомленности о особенностях XMPP. С двухтысячных прошло много времени, протокол продолжил существовать и активно развиваться. Современный Jabber уже сильно не похож на тот, который был раньше.
В этой статье мы рассмотрим для чего создавался XMPP, обсудим в комментариях причины снижения его популярности и каким Jabber стал сегодня
Предыстория
В двухтысячных годах у большинства интернет-гигантов были развернуты XMPP сервера. С одного сервера можно было написать на другой и вот уже казалось, если технологию немного доделать появится e-mail 2.0, универсальный мессенджер для всего Интернета, но тут что-то пошло не так. Компании перестали обновлять XMPP-клиенты. Широкого анонса поддержки XMPP не было. Сервера постепенно стали закрывать передачу сообщений на другие, а после вовсе технология была объявлена устаревшей и поддержку свернули.
Для чего создавался XMPP?
XMPP — расширяемый протокол для обмена сообщениями. XMPP создавался как универсальное средство взаимодействия между разными месенджерами. Предполагалось, что крупные компании могут добавить свои расширения и безболезненно интегрировать свои месенджеры и сервера в единую сеть. XMPP не требует полной совместимости, за исключение базового обмена сообщениями и поэтому никто не может всем навязать определенный стек технологий.
XMPP рассматривался как замена e-mail. Даже вид контакта в XMPP внешне похож на e-mail адрес: user@example.com Ожидалось, правительственные учреждения и компании будут использовать Jabber для быстрого развертывания своих приватных систем коммуникаций. Настройки Jabber серверов позволяют ограничивать доступ к серверу и групповым чатам посторонних или наоборот открывать. На XMPP можно создавать закрытые сети из серверов, чем и воспользовалось NSA. По материалам Сноудена, XMPP используется как внутреннее средство связи:
NSA documents obtained by Edward Snowden and reported on by Der Spiegel on Sunday reveal that the agency communicates internally with Jabber, an open source messaging service used by hackers and activists trying to skirt the NSA's internet surveillance dragnet.
Источник: motherboard.vice.com
Причины падения XMPP
Казалось бы, технология перспективная, но крупные компании быстро потеряли интерес к XMPP. Предполагалось то, что будет работать в идеальном мире, наткнулось на жесткую реальность.
Основной материальный капитал любой крупной интернет-компании — это база пользователей. Многие компании сделали свой бизнес на предоставлении e-mail серверов и закрытых мессенджеров. Если e-mail сервер создать относительно сложно, написать собственный мессенджер еще сложнее, поднять XMPP сервер может любой человек с небольшими познаниями в Linux.
Поддерживать открытый XMPP сервер — это значит дать доступ к клиентской базе множеству мелких конкурентов. Не думаю, что эта ситуация могла понравиться крупным компаниям и инвестирование прекратилось.
«Устаревший и никому ненужный XMPP» как золотая жила! Закрываем S2S, пишем клиенты и зарабатываем миллиарды!
Доподлинно неизвестно, кто использует XMPP в своих продуктах. Некоторые сведения говорят о том, что один из самых популярных мессенджеров — WhatsApp, на старте своего существования использовал (или до сих пор использует) XMPP.
Funny thing is that a couple of year laters in june 2009, Whatsapp team is building its own platform sharing the same vision. Here is a post of Jan Koum on ejabberd mailing list: client access control:Причину этого понять легко, потому что «устаревший, избыточный и никому ненужный» XMPP выдерживает 2 000 000 на одной ноде! Если отбросить популизм, в частности речь идет про Ejabberd.
«Hi there,i installed ejabberd today, got it work with adium/ichat and wanted to ask
you all a couple of things» — blog.process-one.net
2 000 000 активных соединения. График нагрузки CPU и потребления памяти:
Источник: blog.process-one.net
Если Jabber ID заменить на телефонные номера, подписки сопоставить с нахождением номеров в адресной книге, получаем почти полностью готовый продукт с минимумом затрат.
Ejabber поддерживает множество баз данных и соединений с сервером, не только классическим для XMPP способом, но через Websoсket, HTTP запросы и Ejabberd API. На Ejabberd можно создать мессенджер с тысячами онлайн подключений на дешевом VPS, за пару долларов получаем промышленную отказоустойчивость и стабильность работы. Этим выгодно выделяется Ejabberd, по сравнению с множеством других систем обмена сообщениями, падающих от малых нагрузок.
Модифицированные версии XMPP используют многие проприетарные мессенджеры, для быстрого старта с минимумом затрат. Примеров успешного использования ХМPP серверов, как средства для доставки сообщений много. Знаменитая онлайн игра «EVE Online» недавно перевела чаты на Ejabberd. Мессенджер Cryptocat во многом построен на XMPP. Ходят даже слухи, что великий и могущественный Facebook как-то использует XMPP в своих проектах.
Раньше в XMPP была проблема с доставкой сообщений и синхронизацией устройств, как решена она сейчас?
Для доставки сообщений в XMPP используются расширения:
- XEP-0313: Message Archive Management — архив сообщений. Используется для синхронизации при плохом интернет-канале, где периодически недоступно одно устройство.
- XEP-0280: Message Carbons — пересылает сообщения на все онлайн-устройства. Полезен, если отключен архив сообщений в настройках Jabber-клиента.
- XEP-0198: Stream Management — сервер повторно пересылает сообщения, если не получит уведомления о доставке. Полезен, если отключен архив сообщений в настройках Jabber-клиента.
- XEP-0160: Best Practices for Handling Offline Messages — хранение сообщений до доставки. Полезен, если отключен архив сообщений в настройках Jabber-клиента.
- XEP-0333: Chat Markers — Пометка о доставке сообщений.
Раньше в XMPP была проблема с доставкой файлов, как решена она сейчас?
- XEP-0363: HTTP File Upload — файлы загружаются на сервер и передаются как ссылка. Эту ссылку можно отправить любому, даже тому, у кого нет XMPP.
Как дела обстоят с красивыми клиентами в XMPP?
Понятие красоты у всех разное. Некоторые люди в бьются об заклад и говорят что их любимый Gajim, PSI+ и даже Profany самые красивые и самые лучшие, но на Андроид общепризнанный лидер — Conversations.
Ссылка на другие скриншоты и страницу в Play Маркет. Примечание: В настройках Conversations можно включить статус отображения собеседника на кнопке отправки и статус отображения доставки сообщений. Сервер conversations.im, выбираемый по-умолчанию, платный после 6 месяцев использования. Для постоянного использования лучше выбрать другой XMPP сервер, такой как 404.city. Город 404 — это сервер сообщества киберпанков. 404.city официально занимается поддержкой совместимости со всеми версиями Conversations. Ну или поискать сервер здесь.
На Linux большие надежды подает Dino, но пока он еще находится в бете.
Сайт: dino.im. Пакеты для установки: software.opensuse.org
Какие есть особенности у XMPP? Почему у одних все работает отлично, а другие сталкиваются с трудностями?
- Многое зависит от того, какой сервер и клиент ты используешь. В XMPP децентрализованная разработка. Серверное ПО, клиенты, расширения стандартов зачастую пишут разные группы людей, не взаимодействующие напрямую между собой. За 20 лет существования появилось много клиентов и серверов. Часть из них уже устарела, не обслуживаемая, созданная любителями. Сервера может поднять любой, у кого есть небольшие познания в Linux. Многие не осознают, что Jabber не один мессенджер и сервер. XMPP похож на e-mail, как есть в e-mail хорошие и плохие сервера, так же и в XMPP есть хорошие и плохие сервера. С клиентами все аналогично.
Опытные пользователи XMPP, сразу после подключения к серверу, смотрят в настройках Jabber-клиентов возможности сервера.
- Не используйте OTR шифрование, если не понимаете как оно работает. В OTR необходимо держать только 1 устройство включенным и завершать беседы. Для новичков самым простым и удобным в личных сообщениях и групповых чатах будет OMEMO.
Вывод
XMPP не такой простой и устаревший, каким он кажется. XMPP — это идея объединения всех мессенджеров и сайтов (любой может поднять свой сервер) единым стандартом коммуникации. XMPP — это прекрасный инструмент для создания отказоустойчивых мессенджеров в руках разработчика. Jabber — это неплохая свободная альтернатива WhatsApp и другим мессенджерам, в руках пользователей ознакомленных с особенностями его работы.
XMPP — это тема, которую сложно описать в двух словах. Если Вас заинтересовала моя статья, Вам возможно будут интересны так же эти ссылки:
- Ejabberd — отказоустойчивый сервер
- Prosody — легкий в настройки сервер
- OpenFire — сервер на Java, работает на Windows
- jc.jabber.ru — русское сообщество пользователей XMPP (можно заходить с любого сервера)
- Movim — веб-клиент и заодно социальная сеть на основе XMPP (можно заходить с любого сервера)
Комментарии (147)
VBKesha
22.05.2018 14:42Причины падения XMPP
ИМХО основная причина это не возможность найти пользователя если не знаешь на каком сервере он находится.redmanmale
22.05.2018 17:10Ну так с почтой то же самое.
romxx
22.05.2018 18:15Чем же это, что «с почтой то же самое», оправдывает существование этой проблемы в 2018 году?
lixmix Автор
22.05.2018 22:57Однажды в сети Jabber пробовали сделать централизованный поиск. Был сайт, который соберал JID и позволял искать по ним людей. Это обернулось нашествием спамеров по этой базе данных. На некоторых Jabber серверах, есть централизованный поиск по всем контактам
VBKesha
22.05.2018 19:07И как мессенджером ей никто не пользуется.
Но я привык ещё прости госпади в ICQ или Skype что могу поискать людей по нику, имени или почте.
Это правда то что негативного я помню в то время когда пользовался Jabber'ом наверно где то до 2012 года.lixmix Автор
23.05.2018 12:42Почтой очень неудобно пользоваться как мессенджером. Мессенджер предполагает мгновенные сообщения. При регистрации на хабре, я ждал письмо 8 часов
vlivyur
23.05.2018 11:29Основная причина спама в Вацап, Вибер и прочих Телеграмах — привязка к номеру телефона. Можно это делать тупым перебором. Спасибо что в jabber такого нет и спам там только из-за публичных групп.
Gurturok
23.05.2018 11:34В jabber со спамом все плохо, раньше на jabber.ru был открытый форум где светились jid'ы, я так понимаю спамеры от туда базу собрали и понеслась… пришлось запрещающие списки настраивать(благо в xmpp такой функционал есть).
lixmix Автор
23.05.2018 11:35В jabber со спамом все плохо
Уже нет. На топовых серверах стоит антиспам защита
vlivyur
23.05.2018 12:21Я спам получаю только через приватные сообщения в конференциях. И это случается ну очень редко.
Tatikoma
23.05.2018 12:35Просто они никак не могут запилить ограничение на перебор. Руки у них из одного места.
Сама по себе привязка к номеру телефона не так страшна, а местами даже полезна (усложняет процесс регистрации левых аккаунтов).
Например пул мобильных номеров РФ — 1млрд (на самом деле чуть меньше, не суть), если ограничить один аккаунт «пробивом» не более 1000 номеров, скажем, в месяц — тогда 1млрд / 1000 = 1 млн аккаунтов понадобится, для пробива всего пула РФ за месяц. Вот только нет у них там ограничения, — заведите себе в адресную книгу 20 тыщ контактов — он вам всех найдёт (предварительно знатно потупив) за раз. Потом замените на другие 20 тыщ контактов — их он вам тоже найдёт.
Здесь нужно закрывать лишние дыры и иметь возможность отключить поиск по номеру телефона, как сделал тот же вконтакт недавно.
agmt
23.05.2018 12:13Чем отличается «не знаешь, на каком сервере находится» от современной «не знаешь, в каком мессенджере зарегистрирован», но добавляется ещё «надо установить whatsapp для этого человека, viber для того, telegram для сего»?
VBKesha
23.05.2018 12:25Одно проблема фрагментации сервиса, второе проблема фрагментации клиентов по сервисам.
Скажем так зная что у человека есть Skype/ICQ (простите я не знаю что сейчас творится в whatsapp/viber/telegram до уровня не видел даже интерфейс) я мог его найти, зная что у человека есть Jabber я могу только связаться с ним другим методом и спросить его Jabber.lixmix Автор
23.05.2018 12:30я мог его найти, зная что у человека есть Jabber я могу только связаться с ним другим методом и спросить его Jabber.
Если нужен в xmpp поиск, как whatsapp/viber/telegram, есть клиент Kontalkt. Контакты сами добавляются из адресной книги. Этакий свободный WhatsApp. Можно писать на него с любого сервера, но регистровать аккаунт позволят только на своем.VBKesha
23.05.2018 12:37Лично мне уже давно он не нужен, у меня не осталось тех кто использует Jabber. Но вот это вот сама идея о том что если вам надо X возьмите Y как то не ахти. Используя туже ICQ вроде любой клиент позволял делать поиск.
vlivyur
23.05.2018 12:34+1У меня тут на работе несколько человек пользуются jabber и не знают об этом.
VBKesha
23.05.2018 12:40Что именно не знают, что зная ник или почту человека нельзя его найти в Jabber?
Так это так, как минимум надо знать ещё сервер где человек зарегистрирован(и ещё и на сервере должна быть поднята адресная книга чтобы можно было найти хотя бы по почте).lixmix Автор
23.05.2018 12:45Пользуются XMPP и не знаю что используют XMPP. Это распространенный баян. Админ ставит на работе корпоративный сервер, люди используют его, что именно используют не знают.
vlivyur
23.05.2018 13:09Поставили qip ради ICQ и пользуются ею, но оказывается там ещё и jabber есть и они им таки пользуются. Но когда спрашиваешь jid, делают квадратные глаза — пиши в аську. Когда присылаешь им туда сообщение — делают второй раз квадратные глаза — у тебя же нет qip.
elve
22.05.2018 14:49Пользуюсь jabber года с 2008-го. У него только две проблемы:
1. клиенты местами кривоваты (что мешает знакомых пересаживать)
2. там мало кто сидит =). когда у «вконтакте» был свой jabber-сервер было хоть удобно общаться не заходя на сайт.
С пересылкой файлов вообще проблему не встречал. Вот с голосом и видео не всегда все хорошо.DrZlodberg
23.05.2018 09:18У него ещё проблема серверов.
Долго и с удовольствием пользовался, пока все три сервера, на которых у меня были аккаунты не прикрыли.
Gurturok
22.05.2018 15:26Проблемы с e2e шифрованием: Если с сообщениями все понятно(GPG/OTR), то передаваемые файлы не шифруются! (HTTP File Upload — это вообще тихий ужас, по сути отправляете свои данные в общественную файл-помойку). Что с видео/аудио вообще боюсь представить, оно само по себе работает только в экспериментальных условиях на одинаковых клиентах.
Ну а в остальном, у XMPP нет единого курса, поэтому все владельцы серверов и клиентописатели ограничиваются кучкой любимых XEP'ов, а другие игнорируют и получается что «безболезненно» мигрировать с клиента на клиент или пообщаться с пользователем с другого сервера не удастся.Gurturok
22.05.2018 16:08И кстати еще… когда в компании выбирали корпоративный im(было это давно и про HTTP File Upload никто не слышал или его тогда не было вовсе) встал вопрос про отправку файлов в конференции и возможность их загрузить любому участнику… Пришлось писать бота, который складировал у себя файлы и выдавал в личку ссылки на последние n с возможностью загрузки… А потом пришла задача: «отображать загруженные картинки в окне конференций», писать свой клиент никто не был готов, а имеющиеся(например psi-plus с соответствующим плангином) лажали с такой простой задачей, плюс пользователи не отценили идею с файл-ботом и игрища с xmpp закончились, купили готовый закрытый продукт, работает до сих пор.
lixmix Автор
22.05.2018 23:20ОМЕМО тоже недавно появился
Gurturok
23.05.2018 09:22OMEMO — для меня это что-то совсем новое и неведомое, когда оно появилось в массах я уже на tox ушел, ну и в psi-plus поддержки до сих пор нет(это к вопросу о «безболезненной миграции между клиентами»).
lixmix Автор
23.05.2018 10:40ну и в psi-plus поддержки до сих пор нет
Уже есть, как плагин в последней версии psi+andreymal
23.05.2018 13:37Позвольте поинтересоваться, где вы его нашли? Я и после ваших предыдущих комментов пытался его найти, но всё что нашёл — открытый по сей день тикет на гитхабе: github.com/psi-plus/main/issues/673
А в тикете про Psi пишут, что плагин из Psi не работает в Psi+ (врут?)Gurturok
23.05.2018 14:39github.com/psi-plus/psi-plus-snapshots/tree/master/src/plugins/dev/omemoplugin но я скачал последнюю сборку psi+ там пока нет, видимо или руками собирать или девелоперскую качать(кстати где?). Насчет совместимости плагинов не знаю.
andreymal
23.05.2018 14:54Ага, в таком случае, видимо, конечному пользователю всё-таки правильнее будет считать, что OMEMO в Psi+ ещё нет)
Bulroh
23.05.2018 17:04Вру. Накатил psi v1.3.287 под linux, плагин omemo в наличии.
andreymal
23.05.2018 17:08Собрал 1.3.355 из исходников буквально час назад — плагина нет. Видимо, какой-то dev всё-таки надо включать
Bulroh
23.05.2018 17:18images.vfl.ru/ii/1527085000/3f83fd5c/21858036.png Это lubuntu 18.10 если что
andreymal
23.05.2018 17:30Арч, ну вы поняли :) habrastorage.org/webt/td/qw/d1/tdqwd1xgbrwsuet-yvu7nxhjbwe.jpeg
lixmix Автор
22.05.2018 22:07+1то передаваемые файлы не шифруются!
Файлы шифруются. Используйте ОМЕМО и сервер с http upload. Со всеми клиентами не знаком, но Gajim и Conversations шифрует файлы. В OTR, стандартом не предусмотрено шифрование файлов
lixmix Автор
22.05.2018 23:17и получается что «безболезненно» мигрировать
В настройках Gajim «объеденить два аккаунта ». Jabber IDы скопируются из одного аккаунта в другой.
В Conversations сохраняйте JabberID в адресной книге Андроида, а не в самом клиенте. Есть импорт из адресной книги.Gurturok
23.05.2018 09:23Нет, я не про миграцию с сервера на сервер, а про миграцию с одного клиента на другой.
lixmix Автор
23.05.2018 10:49Вы можете описать преимущества клиента используемого вами. Если человеку понравятся преимущества — он перейдет. Если он не хочет, пусть сидит на что ему нравится, это его дело.
Файлы можно пересылать с новых клиентов на любой другой, текст тоже.
Проблема совместимости клиентов, во многом, надуманная. Это просто каждый пользуется, тем что ему нравится. Свобода выбораGurturok
23.05.2018 10:59Ненене, я почти 10 лет был xmpp-Евангелистам и объяснял всем вокруг как в XMPP хорошо, а если что-то не работает так это вы настроили неправильно, больше не хочу. Помню как уговаривал человека перейти с qip на psi+ т.к. в первом нет поддержки otr/gpg(ну точнее плагины отрыть можно на форуме, но на практике они не работают).
Если под «передавать файлы» имеется в виду http-upluad, то простите но нет, лично меня такой вариант напрягает т.к. это загрузка на сторонний ресурс, а не прямая передача.
И проблема совместимости клиентов не надуманная, если уйти чуть дальше чем передача текста, например аудио/видео, раньше даже таблички составляли: между какими клиентами удалось установить связь. если сейчас это довели до ума(за развитием xmpp не слежу около года), то буду приятно удивлен.lixmix Автор
23.05.2018 11:28загрузка на сторонний ресурс, а не прямая передача.
Попробуйте ОМЕМО, тогда это вас перестанет тревожить. Вы приводе в пример Матрикс, однако там вовсе не отключаемая история сообщений. В ХМПП хранить историю или нет — личный выборGurturok
23.05.2018 11:33Средствами im я сейчас общаюсь с одним человеком и нам хватает tox, но учту что XMPP уже не так плох каким был 2 года назад.
Ну и насчет matrix, его не одобряю, просто многие его считают идейным продолжателем xmpp.lixmix Автор
23.05.2018 11:43Напрасно считают. Я не люблю матрикс, потому что разработчики могли создать хороший Jabber клиент, дописать хеп видеозвонков и это был бы отличный продукт, но они пошли по другому пути. Они делают уже 5 лет то, что бы смогли (с теми большими деньгами, которые они получили от инвесторов), сделать на XMPP за месяц
Теперь в реальности мы имеем один сервер и один клиент Матрицы и сказки про децентрализацию.
QuickJoey
22.05.2018 15:38Под macOS, в качестве XMPP клиента, можно пользовать Сообщения (Messages). Из сторонних – Adium.
alexxxst
22.05.2018 16:28Выпилили уже из Messages.
andreymal
22.05.2018 18:01Ну, тут можно просто повторить то, что я вам уже писал.
MUC — срисованное с IRC убожество, что вроде как признают даже сами авторы (где-то был XEP об этом).
обычным пользователям насрать, они не слышали и не желают слышать ни о каких SM, MAM, OMEMO и прочих непотребствах — они просто хотят брать и чатиться. Поэтому они берут WhatsApp, Viber и Telegram.
Conversations не понимает XHTML-IM, полученный от другого «любого мессенджера». Сообщения без MAM теряются на плохом интернете. Мессенджеры без поддержки шифрования не могут прочитать сообщения с шифрованием. Серверы, требующие шифрование, не позволяют передавать сообщения мессенджерам, не умеющим в шифрование.Ещё я тогда не вспоминал, что XMPP — это лютый франкенштейн, в котором новые идеи кое-как с костылями и глюками построены поверх старых — это одна из причин, по которым подключение может длиться целых полминуты: если заглянуть в XML-консоль, то можно увидеть, что куча времени тратится на включение современных фич, которые вообще-то должны быть по умолчанию. А современные клиенты типа Conversations пытаются прятать устаревшие сущности типа ресурсов с приоритетами, хотя по факту они конечно же никуда не деваются.
XMPP стал слишком тяжёлым. XMPP устарел. XMPP умрёт под весом обратной совместимости, если не появится XMPP 2.0.
lixmix Автор
22.05.2018 22:11это одна из причин, по которым подключение может длиться целых полминуты
Пинг или плохо настроенный сервер. На локальной сети подключение занимает пару секунandreymal
22.05.2018 22:13На локальной сети подключение занимает пару секун
Что и требовалось доказать. У Telegram подключение занимает пару секунд (максимум даже с проксей, а обычно полсекунды) на не самом хорошем 3G-интернете.
lixmix Автор
22.05.2018 22:49Я думаю Telegram использует CDN. Сервера расположены близко.
andreymal
22.05.2018 23:31До jabberon.ru в hetzner тоже всего ~36мс пинг на компьютере. Если считать пинг на 3G в 100-200 миллисекунд, то больше напоминает погрешность и не является оправданием джабберу. К тому же на нём ещё и некоторых фич нету, что теоретически должно немного экономить время на подключении, но стабильные 25-30 секунд всё равно набегают.
Вы когда-нибудь заглядывали в XML-консоль, наблюдая за процессом подключения? Если заглядывали, то неужели не задумывались, что в нормальном протоколе можно было бы ужать процесс подключения раза в три, к примеру объединив некоторые XML-строфы? О телеграмовских полсекунды я даже мечтать не буду (расширяемость протокола всё-таки имеет свою цену, не стоит требовать невозможного), но и в текущем виде XMPP тоже никуда не годится.lixmix Автор
22.05.2018 23:35jabberon.ru есть проблемы с конфигурацией сервера или с железом. Я проверял его когда мы обсуждали это раньше. Тут проблема не с XMPP, а самим сервером. Я думаю, Вам лучше сменить сервер
andreymal
23.05.2018 10:30Справедливости ради выпишу и здесь, что вчера оказалось, что время подключения к 404.city у меня укладывается в пять секунд, значит тормоза не из-за XML-строф. А из-за чего, я пока не понял
lixmix Автор
22.05.2018 23:32На скорость подключения оказывает влияние:
- Физическая удаленность расположения сервера.Чем дальше тем медленней
- Присутвие ХЕП версия списков или нет. Если есть, то передаются хеши состояния. Если нет, то данные загружается заново
lixmix Автор
22.05.2018 23:06Что бы появился XMPP 2.0 достаточно обновить версии конфигов по-умолчанию Ejabberd и все новые сервера будут идти сразу со всеми новыми фичами, но увы, этим некому занятся
Gurturok
23.05.2018 09:26Есть уже matrix которые некоторые называют XMPP2.0, там тот-же ад только на web-технологиях
lixmix Автор
23.05.2018 11:23У matrix есть проблемы. Часть из них:
- С отказоусточивостью. Частные сервера плохо держать нагрузки. Была выбрана не удачная технология
- С расширямостью. Добавление изменений одобряют из одного центра. Это значит матрикс никогда не сможет претендовать на универсальный протокол.
- С децентрализованностью. Матрикс рекламируется как децентрализованная технология, но большинство людей на одном сервере и одном клиенте.
Этим летом в Conversations начали делать звонки, если у них получится это будет сильный дар по матрицеGurturok
23.05.2018 11:35Звонки и раньше делали, я звонил через jitsi и psi+, проблема именно со звонками между разными клиентами. Ну и что там с шифрованием звонков придумали.
lixmix Автор
23.05.2018 11:47У них не получилось сделать полноценные звонки. Может быть время было другое.
Я говорил с автором и разработчиков Gajim, он сказал раньше он долго старался сделать звонки, когда он сделал, оказалось они никому не нужны
divanikus
22.05.2018 18:03Проблемы для бизнеса следующие:
1. Кривые клиенты. Под Android до недавнего времени их можно сказать не было, под iOS не знаю.
2. Отсутствуют привычные уже удобства современных мессенджеров, типа вставить картинку, гифку, видосик, ссылку, чтобы автоматом превьюхой развернулась, вот это все.
3. Все очень плохо с API. Ну т.е. понятно что можно использовать jabber-клиент и из него что-то делать, но чтоб модные нынче вебхуки — увы.
Итого, початиться текстом можно, на работе все довольно быстро забили, хотим Slack или что-то подобное.lixmix Автор
22.05.2018 22:44Кривые клиенты. Под Android до недавнего времени их можно сказать не было, под iOS не знаю.
Чем плох Conversations? Да, он относительно недавно появился.divanikus
22.05.2018 23:18Тем и плох, что недавно появился. Были только всякие im+, xabber и т.п. Половина как только что скопированы с Nokia S60
lixmix Автор
23.05.2018 00:26Jabber почти никак не развивался до 2014 года, потом произошел всплеск к теме приватности и сейчас появилось много нового. Особенно много крутых вещей появилось в 2017 году.
Среди европейцев настолько сильно усилился интерес к XMPP, что даже один из самых лучших и крупных серверов — Jabber.at закрыл регистрацию. Количество на нем пользователей за 1 месяц увеличилось в три раза
Заголовок спойлераdivanikus
23.05.2018 14:43Чтобы он стал популярен среди простых пользователей нужны клиенты уровня WhatsApp, Telegram и т.п. Чтобы он стал популярен среди бизнеса, ему нужны веб-API, веб-хуки и вот это все, ради чего люди юзают Slack и клоны.
vlivyur
23.05.2018 12:20Нет поиска по тексту. Список участников конференции далеко засунули (впрочем, как у всех) и снова без поиска.
robert_ayrapetyan
22.05.2018 18:23Все gmail адреса поддерживают XMPP — это о поддержке со стороны крупных компаний.
foxmuldercp
22.05.2018 22:12Выпилили они работу жаббера помнится, мол "малый процент пользователей это использует", и вообще вон есть толком не нужный хенгаутс в котором как и в Г+ у меня сидит аж полтора человека.
robert_ayrapetyan
22.05.2018 22:45Да нет, работает по XMPP. Домен — gmail.com. Имя пользователя\пароль — как для доступа в ящик. Сообщения ходят в\из хенгаутса.
batyrmastyr
23.05.2018 10:06У тех, кто регался во времена GTalk — работает, а у учёток созданных при Hangouts не работает вообще, емнип.
tyderh
22.05.2018 18:51+1tl;dr — чаты убоогие, клиентов нормальных так и не появилось.
conversations крутой, но убожественно хиганутый
проблемы с надежной доставкой сообщений (привет, 2018 год)
всякие крутые XEP'ы вроде как и есть, но толку, если большинство можно использовать только между двумя конверсейшонсами?lixmix Автор
22.05.2018 23:07проблемы с надежной доставкой сообщений (привет, 2018 год)
В статье описано, как раз что их уже нет и как это решено, через какие технологииtyderh
23.05.2018 00:31В статье описано, как раз что их уже нет и как это решено, через какие технологии
Так я об этом и сказал, что стандарты есть, но они где-то во влажных фантазиях витают. MAM умеет полтора клиента, из которых один мобильный. И при наличии Stream Management сообщения все равно умудряются улетать в бездну (в интересных пограничных ситуациях, например, когда клиент переподключается и уходит не на тот ресурс) и не переотправляются.
Последним гвоздем в гроб джаббера для меня стал этот самый Conversations. Являясь единственным умеющим почти все клиентом он настолько убог и не умеет нормально в пуши (а без пушей выжирает батарейку), что пришлось его удалить. Да и в целом разработчики ведут себя так, будто бы других клиентов совсем нет (хотя так оно и есть по сути дела).lixmix Автор
23.05.2018 00:40+1выжирает батарейку
Я хотел вам отослать статистику потребления Conversations, что он мало расходует батареи. Я не смог сделать скриншот. У меня не показывает приложения с расходом батареи меньше 1% в день
citius
22.05.2018 19:01Идея объединения всех сайтов с помощью слабо совместимых наборов реализаций разных XEP-ов, это ну такое прямо.
Минимальный функционал — да, как только шаг вправо/влево уже все.
Любимый клиент на андроид не завезли, тот что на андроиде не умеет в фичу которую умеет клиент у коллеги, и пошло поехало дальше в таком же стиле.
Федерации с другими (произвольными) серверами — уже практически нереализуемая в общем виде задача, там даже русские кодировки несовместимыми быть умудряются.
Пока не будет _строгих_ стандартов на все и вся — не взлетит.
Да и врядли когда-то это будет, как показывает практика, увы.lixmix Автор
22.05.2018 23:02Идея объединения всех сайтов с помощью слабо совместимых наборов реализаций разных XEP-ов, это ну такое прямо.
Весь интернет состоит из " совместимых наборов реализаций". В XMPP хотяли создать такое же «интернет для мессенджеров». Один разработчикам нравится одна технология, другая другим. Невозможно совместить не совместимое
WalterS
22.05.2018 19:10Должны быть приняты стандарты или очень качественные открытые протоколы и Тогда они станут стандартами. В этом направлении пытается что-то сделать Matrix.org
Killy
22.05.2018 20:16Раз уж Movim упомянут:
Когда начинаешь пытаться его использовать — понимаешь, что он представляет из себя довольно печальное зрелище.
Социальная сеть поверх XMPP — довольно шаткая и ограниченная конструкция. Вероятность того, что какой-то из популярных клиентов полезет в те же дебри — нулевая. А без этого XMPP скорее тянет проект ко дну, чем помогает.lixmix Автор
22.05.2018 23:12Все упирается в финасирование. Movim пишет 1 человек. Как полноценную социальную сеть это сложно рассматривать, скорей как пример веб-клиента, что возможно сделать на XMPP
Killy
23.05.2018 00:48Movim — веб-клиент и заодно социальная сеть на основе XMPP
В итоге слабый клиент и слабая социальная сеть.
Понаблюдав немного за кухней, я пришёл к выводу, что там проблемы двух видов:
1. не хватает рук или скиллов у одного человека;
2. сложности со спецификациями.
Идеальный мир: определяемся с набором фич, смотрим как их наиболее логично совместить и с наименьшими усилиями реализовать.
Реальность: попытка натянуть сову на глобус, в условиях когда есть куча пересекающихся но неполных и местами взаимоисключающих спецификаций, не имеющих эталонной реализации. Попытка собрать разрозненные концепты в единое целое напоминает монстра Франкенштейна, абстракции ломаются в неожиданных местах, и невозможно достичь логичного, казалось бы, поведения.
Как отметил сам разработчик, было бы неплохо, если бы на его работу обратили внимание те, кто пишут XEPы (теорию к реальности подтянуть). Однако я не уверен, что даже он сам знает, как развивать проект.lixmix Автор
23.05.2018 00:54Попытка собрать разрозненные концепты в единое целое напоминает монстра Франкенштейна, абстракции ломаются в неожиданных местах и невозможно достичь логичного, казалось бы, поведения.
Никто не заставляет собирать, то что считаете не нужным. Всегда можно дописать новое, а не использовать то что ненравится. Такая философия XMPP, жалко что не все об этом знаютKilly
23.05.2018 01:14Никто не заставляет собирать, то что считаете не нужным.
Это смешно в условиях, когда даже на нужное времени не хватает. Однако разные привычные и нужные фичи вдруг плохо ведут себя в новых условиях.
Всегда можно дописать новое, а не использовать то что ненравится.
Это упирается в поддержку клиентов и серверов.
Какой прок от расширений, которые никто не поддерживает?
Если забить на весь остальной мир, то проще делать свою реализацию без XMPP.
Если пытаться тянуть остальной мир за собой, то нужно вкладываться в работу над XEP, а потом ещё и реализовывать его самостоятельно в клиентах и серверах. XEP сам себя не реализует, поскольку у базара нет единой движущей силы.
(ЗЫ: кажется, на странице Design by committee не хватает ссылки на XMPP.)lixmix Автор
23.05.2018 01:21Какой прок от расширений, которые никто не поддерживает?
Главное что бы Ваш сервер и мессенджер поддерживал. Conversatis на этом делает бизнес, продавая платную подписку на сервер и клиент. Покупают.
XMPP это не один мессенджер. Это как WhatsApp и Telegram способные обмениваться с друг другом сообщениями. Таким задумывался Jabber
Gurturok
23.05.2018 09:35>Социальная сеть поверх XMPP — довольно шаткая и ограниченная конструкция.
juik, point, bnw вполне доказали свою живучистьKilly
23.05.2018 13:58Нужно различать «сеть поверх XMPP» и «сеть с интерфейсом через бота».
Все перечисленные относятся ко второму типу.
Интерфейс через бота, в целом, имеет право на существование. Однако есть несколько моментов:
1. XMPP здесь на равных правах или меньше (но не больше) с другими сетями обмена сообщений в плане технических возможностей для бота. Везде, где можно передавать plain text — можно устроить ботов с командами. Однако можно видеть, что другие мессенджеры могут предоставлять больше возможностей для ботов.
Хотите кнопки в интерфейсе, которые будут работать в любом клиенте? — это не про XMPP.
Есть XEP для кнопок? — см. про «XEP сам себя не реализует».
Честный счётчик непрочитанных сообщений? Лайки/реакции? — пишите свой клиент.
2. Популярность. Мало кто продолжает использовать XMPP ради одного лишь Juick'а. Диверсификация с добавлением бота в Телеграм была воспринята весьма позитивно. В целом, Juick, Point и BnW вместе взятые сейчас генерируют заметно меньше контента, чем один лишь Juick в момент своего рассвета. И существуют разве что по инерции, за счёт ранее набранной аудитории.
(На самом деле, технически, до недавнего времени Juick можно было назвать «сетью поверх XMPP». Однако это создавало только проблемы. Хотя я не во всём поддерживаю вектор развития Juick'а сейчас, вынос XMPP из архитектуры и оставление только в качестве интерфейса — это однозначно улучшение.)
Lezenford
22.05.2018 22:13У клиентов джаббера есть одно большое ограничение, которое не получается обойти, а именно отсутствие push-уведомлений, из-за чего сообщения часто просто не могут быть получены — получатель о них не узнает, пока не включит ушедшее в сон приложение на смартфоне. Ради работы с ним пришлось заворачивать сообщения с джаббера в телеграм через бота, иначе пользоваться на телефоне им совершенно непрактично…
lixmix Автор
22.05.2018 22:23В платной версии Conversations есть Push уведомления. Получить бесплатно, платную версию возможно иногда по праздникам. При запуске Conversations задается вопрос, использовать параметры энергосбережения или нет. Выберете не использовать. В этом случае приложение меньше будет уходить в сон. Я лично проблем с доставкой уведомлений, на бесплатной версии не испытываю. Относительно других ОС, кроме Андроид, ничего сказать не могу
Lezenford
23.05.2018 10:27А тут все упирается в архитектуру самого джаббера — сам сервер не умеет посылать пуши в отсутствие коннекта, значит вы должны передать свои пароли от аккаунта в открытом виде на сторонний сервис, который будет поддерживать коннект и в случае чего пришлет пуш, а потом дошлет и сообщение. Это не всем подходит. У нас в компании и джаббер то живет до сих пор только потому, что мы под себя развернули свой сервер с шифрованием и точно знаем, что переписка не уходит на сторону. Да и под iOS я так и не нашел клиентов с пушем, пришлось выкручиваться через телеграм.
Murz
23.05.2018 10:38Наша компания тоже долго мучалась с Jabber, потом всё же нашли Matrix.org и пересели на него уже года 2 как, рекомендую и вам глянуть. Несмотря на несовсем оптимальную реализацию протокола, чаты и шифрование там работают на отлично, мобильные приложения есть под все девайсы. Также есть все новомодные фишки — видеозвонки, конференции, стикеры и т.п.
lixmix Автор
23.05.2018 11:32сам сервер не умеет посылать пуши в отсутствие коннекта
В ХМПП используют mod push ejabberd
свои пароли от аккаунта в открытом виде на сторонний сервис
В ХМПП используют RSA + SCRAM. Пароли не могут быть перехвачены и хранятся как хеши
TonyLorencio
23.05.2018 11:49Вот только это уведомления, а не push-уведомления
lixmix Автор
23.05.2018 11:50Это именно push уведомления. Когда приходит сообщение сервер делает push запрос с клиенту и передает сообщение
AlfaStigma
23.05.2018 12:06Пуши так-то делаются не клиенту а серверам google/Apple а они в свою очередь оповещают клиента
lixmix Автор
23.05.2018 12:07Да, именно так. Бесплатно получить платный Conversations с пушами можно по праздникам. В последний раз раздавался 1 мая и 1 января. В бесплатном нет пушей, но без них тоже все хорошо работает.
TonyLorencio
23.05.2018 13:19Не слышал о подобном, решил поискать.
Cкорее всего имелся в виду XEP-0357: Push Notifications. Conversations работает через него
Но опять же — нужна поддержка со стороны XMPP-сервера, чтобы он мог отправить запрос на Apple Push Notifications Service или аналогичный сервис от гугла.
achekalin
22.05.2018 23:40Протокол не устаревший. Устаревшие (или, скорее, несовременные) клиенты. Да что устаревшие (я про десктоп), просто некрасивые, неудобные, а порой (скажу откровенно) и убогие. Многие либо заброшены, либо развиваются программистами для (наверное) программистов, еще что-то просто откровенно тяжелы.
И, самое гадкое, никогда не знаешь, что точно будет работать. Даже файл другому клиенту кинуть — может получится, может нет, сильно от прямоты рук админов зависит.
Тот же Телеграмм на голову, а то и на две выше. Был бы такой удобный XMPP клиент (инфраструктура) — никто бы не слезал с него.vlivyur
23.05.2018 12:33Вот если б Телеграм на десктопе был бы с мордой и возможностями gajim'а — цены б ему не было.
defanor
23.05.2018 10:37В нескольких комментариях упомянута несовместимость из-за реализаций только любимых расширений авторов; как раз чтобы получить небольшой набор важных и общих расширений, есть XMPP Compliance Suites (см. XEP-0387).
Но в то же время не все популярные клиенты поддерживают их, и не все популярные серверы поддерживают их по умолчанию. С библиотеками тоже не всё хорошо, в большинстве случаев клиенты и серверы реализуют XMPP с расширениями заново.
alexxz
23.05.2018 10:59Долгое время одной из прекрасных особенностей всех Jabber серверов было хранение пароля пользователя в совершенно открытом виде. И, естественно, это все не афишировалось, но требовалось механизму аутентификации. Были даже статьи, где рассуждалось о том, почему хранение пароля в открытом виде на сервере — это для безопасности.
Store passwords in plaintext in the database for security
На практике же в протоколе не хватало множества важных фич, которые каждый сервис сам изобретал и поддерживал в своих клиентах:
— Обмен файлами
— Аудио-Видео вызовы
— Хранение истории на сервере и отображение нескольких последних сообщений при открытии чата.
— Синхронизация переписки между разными клиентами.
— Отсутствие подтверждения от клиента серверу, что он получил сообщение.
— Отсутствие уведомлений о доставке сообщения получателю.
— Ужаснейший монстр под названием http-bind для имплементации браузерных клиентов.
— Отсутствие возможности по редактированию/удалению отправленных сообщений
Сам XMPP лег в основу множества мессенджеров, вероятно, благодаря его расширяемости. И к некоторым таким сервисам иногда можно присоединиться Jabber клиентами. Но обычно это вызывает эмоции схожие с теми, когда заходишь в IRC через консольный telnet. Попросту говоря — это совершенно неудобно.lixmix Автор
23.05.2018 11:34Долгое время одной из прекрасных особенностей всех Jabber серверов было хранение пароля пользователя в совершенно открытом виде.
Времена были другие. Jaber появился в 2000. В это времена даже гугл хранил пароли открытым текстом. Сейчас в используют соленные хеши
lixmix Автор
23.05.2018 17:25Это так было в прошлом, сейчас по-другому
почему хранение пароля в открытом виде
Уже хранятся как соленые хеши
— Обмен файлами
Уже есть в XMPP
— Хранение истории на сервере и отображение нескольких последних сообщений при открытии чата.
Уже есть в XMPP
— Синхронизация переписки между разными клиентами.
Уже есть в XMPP
— Отсутствие подтверждения от клиента серверу, что он получил сообщение.
Уже есть в XMPP
— Отсутствие уведомлений о доставке сообщения получателю.
Уже есть в XMPP
— Ужаснейший монстр под названием http-bind для имплементации браузерных клиентов.
Есть Websocket
— Отсутствие возможности по редактированию/удалению отправленных сообщений
Уже есть в XMPP. Редактирование ошибок в последнем сообщении, есть даже в Conversations. Отредактированное сообщение, помечается значком
worldmind
23.05.2018 11:50Что-то ничего не сказано про голосовые/видео звонки, всё ещё не работает в клиентах?
lixmix Автор
23.05.2018 11:52Есть аудиосообщения. Это когда голос записываться, а потом отсылается вместо текста. Звонки в Conversations начнут делать этим летом, получится это у них или нет узнаем позже. Еще звонки и видеозвонки есть в movim, но это работает только в браузере
worldmind
23.05.2018 11:53в браузере это видимо WebRTC для этого никакой xmpp не нужен, полно вариантов типа meet.jit.si
worldmind
23.05.2018 11:53Принципиальная проблема джаббера это привязка имени пользователя к доменному имени сервера:
1. владение доменом вообще не очень надёжная вещь — угонят, отсудят и т.п.
2. роскомнадзор не дремлет — можно сохранив домен получить проблемы
3. если домен не свой, то владельцы домена могут сломать тебе адрес
Ничего не скажу про протокол, но адресация мне больше нравиться в Tox'еlixmix Автор
23.05.2018 12:001. владение доменом вообще не очень надёжная вещь — угонят, отсудят и т.п.
Есть XMPP сервера в .onion Такой сервер может поднять любой на своем ПК. Такой домен можно отобрать только с компьютером.lixmix Автор
23.05.2018 12:21Пример с использование i2p описал supervillain
worldmind
23.05.2018 16:33Такое ручное конфигурирование имеет смысл в крайних случаях, в которых может хватить Tox'а
lixmix Автор
23.05.2018 17:10Очень часто идут споры из push и 1 соединения в XMPP, а ТОХ плодит их немереное количество. p2p архитектура, не самое удачное решение для мобильных. Обработка маршрутизации чрезмерно потребляет дорогой и медленный интернет, память, батарею, ресурсы процессора.
В XMPP эти данные обрабатывает сервер и передает готовый результат.
Контакты могут хранится локально, сменить сервер в XMPP дело пары минут.
В реальности аккаунты ТОХ теряют не менее часто (Из-за поломки устройства, синего экрана смерти и т.д), чем в ХМПП возникают описанные сложности с крупными серверами
andreymal
23.05.2018 17:35Сменить сервер, может, и пару минут, а вот переписать JID в контактах десятков сайтов, убедить собеседников что ты это ты, возвращать мемберку во всех конфах, особенно закрытых, перенастроить всех связанных ботов — та ещё возня. Хорошо что j2j-транспорты существуют, немного облегчают это всё, но лишь немного (поэтому я буду на jabberon.ru до последнего :)
lixmix Автор
23.05.2018 17:41Попробуй Gajim объеденить контакты или если это Conversations сохраняй всегда новые в адресную книгу. Некоторые люди контакты десятками таскают с сервера на сервер, каждые пару месяцев. Надоел один домен, пошли на другой. Миграция не обязательно должна быть быстрой, можно два аккаунта одновренно держать включенными, потока все не перейдут.
andreymal
23.05.2018 17:43Каким образом Gajim вернёт мемберки в конференциях? Давайте не читать мои комменты не целиком :)
worldmind
23.05.2018 19:58Я согласен, но повторюсь — никто не будет заниматься такими самоделками, просто возьмут Tox потому что проще т.е. такое решение на джаббере имеет право на жизнь, но будет жить только если кто-то сделает готовый продукт, а не инструкцию для хакеров.
worldmind
23.05.2018 16:22И что все джаббер сервера умеют слать в .onion?
Как я понимаю это же требует специальной настройки.
alhel
23.05.2018 12:17Может ситуация с Телеграмом подтолкнет владельцев мессенджеров освоить совместимый протокол. РКН адреса email еще не запрещает?
squizduos
23.05.2018 13:28Принципиальная проблема Jabber — переусложненность. Из-за обилия клиентов, различий на уровне протоколов и особенностей поведения XEP-ов, нет простого и понятного решения, которое позволит к себе народ перетянуть.
Как это уже было с WhatsApp, Viber и сейчас происходит в Telegram.
Достаточно дать ссылку на сайт, откуда качается клиент, и все работает в полном объеме. И на передачу файлов и звонки реально можно положиться.
Отсюда следует, что Jabber-у нужна централизация и жесткий стандарт. И качественные клиенты на каждой ОС. Но этого не будет, потому что никому не нужно.lixmix Автор
23.05.2018 13:30Я поступаю аналогично c XMPP. Сразу даю ссылку сразу на клиент и сервер. Если просто говоришь поставь Jabber, ставят что попало
lixmix Автор
23.05.2018 13:38Просто поставь это поставь Jabber, это словно просто зайди в Google Play и поставь от туда любой мессенджер. Jabber это не один мессенджер и поэтому всегда нужно уточнять какой именно Jabber поставить.
Kwisatz
23.05.2018 15:22Я вот давненько читаю споры на эту тему. А альтернатива то какая? Дано: компания с Н сотрудников (ок раз н мало пусть будет М). Нужен месенджер на своем сервере с шареным контакт-листом. На этом требовании уже и все, приехали.
Я для себя решил проблему как openfire + pidgin (+window merge). И туда до кучи всяких ботиков, можно ад втолкать. Единственное что из хотелок нету: хочу синхронизацию истории между всеми клиентами, чтобы можно было открытыми их держать и на телефоне и на двух пк.
YMax
24.05.2018 09:26+1На работе давно и успешно используется OpenFire + Spark + импорт клиентов из AD — работает без вопросов, отличное решение. Имхо причина падения популярности Jabber — не техническая, а невозможность на нем заработать как раз по причине децентрализации, а все продукты, на которых невозможно заработать, обречены на вымирание. Ведь при создании своих версий протоколов в первую очередь от Jabber отломали самое главное — S2S соединение, создав свои песочницы для каждого владельца сервиса, тем самым убив саму идею общего мессенджера. Ситуация очень напоминает RSS — отличное техническое решение, но на нем невозможно заработать, соответственно каждый начинает изобретать свой велосипед.
vilgeforce
Ну хорошо, есть расширение протокола для передачи файлов. ejabberd его умеет? Старые клиенты с ним будут работать?
inkvizitor68sl
Ejabberd очень давно умеет (по дефолту не включено).
Gajim заливать файлы умеет тоже давно, а если у получателя нет поддержки этого XEP — то ему просто http-ссылка придет.
vilgeforce
Спасибо. Осталось донести это до наших админов :-)
inkvizitor68sl
mod_http_upload, если что. Я его ещё в 2012 припоминаю, когда самый первый ежик себе поднимал, переходя с jabberd.
lixmix Автор
Так же по-рекомендуйте им поставить последнею версию Ejabberd (18.01 или выше)