Библиотека для разработки XMPP-сервера на C++ или delphi?

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

Я могу использовать языки Delphi и C++. Я уже посмотрел библиотеки, перечисленные на xmpp.org, но большинство из них, похоже, являются библиотеками только для клиентов или (как, например, QXmpp) требуют QT, с которым у меня нет опыта, и считают его чистой структурой GUI.

Кто-нибудь может предложить библиотеку, на которую мне стоит присмотреться? Имеет ли смысл знакомиться с QT для этой цели (написание сервера xmpp; без графического интерфейса)?

Или лучше просто поймать потоковый парсер (предложения?) И самому его кодировать?

Спасибо!

Изменить: Единственная библиотека, которую я мог найти для Delphi, IP*Works, это чисто клиентская библиотека. Я сейчас оцениваю QXmpp.

1 ответ

Решение

Что касается Delphi-части моего вопроса: я не нашел библиотеку, которая, я думаю, подходит для построения сервера.

Что касается части C++, я думаю, что этот пост клиентская библиотека XMPP C/C++ не GPL для встроенного Linux (хотя и для встроенного и клиентского) отвечает на мои вопросы:

Потому что Qt предоставляет парсер XML и каркас сигнала / слота. Для XMPP требуется синтаксический анализатор XML, а структура сигналов / слотов делает вашу жизнь проще. Если вы попытаетесь реализовать весь XMPP со всеми расширениями в режиме ООП, вам понадобится нечто похожее на Qt.

а также

Совет: когда дело доходит до C++, хороших библиотек xmpp не так много.

Поэтому я думаю, что QXmpp кажется хорошим решением.

Для других людей, ищущих эту тему:

ИМХО документация (особенно для серверной части) немного скудна. Пример сервера, распространяемого с библиотекой qxmpp, (конечно) очень прост: он передает сообщения чата. Распространение информации о присутствии, реестре, обработке подписки должно осуществляться вами с помощью расширений (наследуя QXmppServerExtension, перезаписывая как минимум виртуальную функцию handleStanza). Не анализируйте присутствие или IQ-строфы в вашем собственном коде. Для более распространенных разделов библиотека содержит классы, в которых реализованы классы QXmppPresence, QXmppRosterIq и т. Д.), Которые также могут использоваться в вашем расширении.

Другие вопросы по тегам