Насколько легко запустить собственное серверное приложение XMPP? - PullRequest
4 голосов
/ 25 мая 2010

Со ссылкой на этот вопрос , XMPP был упомянут как открытый стандарт для взаимодействия IM.

Для моего приложения большой выбор был бы, если бы я использовал XMPP для внутренней связи клиент-сервер или разработал свой собственный внутренний протокол, но использовал XMPP на сервере, чтобы разрешить связь с другими серверами на более позднем этапе. У меня такое чувство, что последнее будет проще, , но может быть, я переоцениваю, сколько нужно будет работы, чтобы взять существующий Jabber-сервер или XMPP-серверные библиотеки и создать пользовательское серверное приложение?

Если мой клиент будет всегда общаться с моим сервером, а не напрямую с другими серверами, использует XMPP разумно или излишне?

Скажем, я хочу иметь свою собственную БД для пользователей, сообщений, групп и пользовательских данных. Что на самом деле включает в себя настройку с использованием XMPP, чтобы я мог свободно отправлять данные на свой сервер и обрабатывать свою собственную серверную логику? Позволяет ли какая-либо из библиотек запустить «скелетный» XMPP-сервер, где я предоставляю свои собственные обработчики, которые вызываются при получении сообщений и т. Д.?

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

Существует также проблема лицензирования. Я, конечно же, не планирую открывать исходный код основной базы кода, и если бы я использовал решение GPL XMPP для связи клиент-сервер, я понимаю, что мне будет сложно не испортить мой код с помощью GPL.

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Довольно просто, если вы находитесь под Linux

sudo apt-get install ejabberd

, затем вы можете указать предпочитаемый IM-клиент localhost: 5222, и все готово. Конечно, если вам нужно доменное имя и т. Д., Понадобятся дополнительные настройки / установки, но я думаю, что это не то, что вы просите.

Примечание. Существует также версия Windows для ejabberd, http://www.process -one.net / ru / ejabberd / downloads

1 голос
/ 05 декабря 2012

Вы можете написать серверный компонент XMPP.Это будет работать с любым сервером XMPP, который реализует XEP 0114 .Все основные реализации сервера XMPP делают это.

Если у вас есть компонент сервера XMPP на component.localhost.localdomain, а ваш сервер работает на localhost.localdomain, то любое полученное сервером сообщение, адресованное любому пользователю на component.localhost.localdomain будет немедленно передано на серверный компонент.Там вы можете делать с ней все, что захотите (например, обработка, хранение в базе данных и т. Д.).Ответы отправляются исходному отправителю снова через сервер XMPP, поэтому компоненту не приходится иметь дело с серверными задачами.

Библиотеки Ruby xmpp4r и blather обаупростить написание серверного компонента на Ruby.

Большое преимущество серверных компонентов XMPP перед серверными подключаемыми модулями заключается в том, что они не зависят от кода сервера, так как взаимодействуют через стандартизированный интерфейс (как определено в XEP 0114).).Недостатком является то, что компонент не имеет доступа к внутренним структурам данных сервера, что может или не может быть проблемой в зависимости от вашего приложения.

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

1 голос
/ 25 мая 2010

Если вы действительно хотите XMPP, Openfire будет одним из самых простых в настройке http://www.igniterealtime.org/projects/openfire/, Я бы также посмотрел BlazeDS, если вы работаете с Java, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...