Библиотека для разработки 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 и т. Д.), Которые также могут использоваться в вашем расширении.