Ищете простой протокол обмена мгновенными сообщениями для собственного IM-сервера / службы на Java
-
13-09-2019 - |
Вопрос
Я подумываю о внедрении простого сервера обмена мгновенными сообщениями на Java, но я не хочу создавать еще один протокол, а вместо этого использую уже простой IM-протокол.Но я не знаю, какой протокол мне следует использовать.
Причина, по которой я хочу использовать уже существующий протокол обмена мгновенными сообщениями, заключается в том, что я хотел бы, чтобы мои "пользователи" могли использовать свои собственные клиенты, например pidgin - который уже предлагает широкий спектр протоколов, таких как XMPP, Simple, Bonjour и т.д. - и мне не нужно разрабатывать никаких клиентов.
Я немного просмотрел XMPP, но с тех пор потребовалось много работы по встраиванию этого протокола в новый сервер.Может быть, есть другие протоколы, которые проще в использовании?
Мои вопросы таковы: есть ли у вас, ребята, какие-либо предложения по протоколам, которые действительно являются базовыми и простыми в использовании на Java?Pidgin поддерживает целую кучу протоколов, но какие протоколы актуальны для меня?
Решение
XMPP широко используется и имеет поддержку стандартов, стоящих за ним.Он довольно прост в использовании, если вы используете существующую библиотеку - для него существует множество клиентских библиотек на многих языках.Google говорит, что есть многие на Java.
Преимущество использования XMPP заключается в том, что ваш сервер может выступать в качестве шлюза для всех других серверов Xmpp / Jabber в сети, поэтому ваши пользователи могут входить и выходить из вашей сети - например, для людей, вошедших в GoogleTalk, используя стандартные адреса JID, например bob@yourhost.com/desktop .
Другие советы
Для получения самой широкой поддержки я бы выбрал XMPP / Jabber.На самом деле другого выбора нет.
Согласно этой теме, разработка XMPP-сервера на Java кажется сложной задачей:
Хорошие библиотеки XMPP Java для серверной части?
Даже в одном комментарии говорилось, что лучше использовать существующий сервер вместо того, чтобы создавать его с нуля с помощью библиотеки.