Как интегрировать Django API с XMPP-сервером (ejabberd)
В настоящее время я работаю над проектом, в котором я использую Django rest framework (DRF) для бэкенда. Мне нужно реализовать чат один к одному в этом приложении. Для этого я использую XMPP сервер. В качестве XMPP сервера я использую ejabberd.
Теперь мне нужно создать пользователей на сервере ejabberd, используя мой API, созданный с помощью DRF. Мне нужно добиться следующих вещей с помощью моего API:
- создайте новых пользователей на сервере ejabberd
- создайте комнаты на сервере ejabberd .
- получить все доступные комнаты.
Имя пользователя будет получено или извлечено из фронтенда.
Есть ли какой-нибудь клиент API Python или клиент API Django, чтобы сделать это на сервере ejabberd? Например, как simple-xmpp
для node js
Я видел много пакетов python для этого. некоторые из них,
Я не уверен, какой из них использовать, и не знаю, возможно ли реализовать вышеописанное, используя любой из этих пакетов.
Все эти библиотеки, которые вы упоминаете, похоже, предназначены для написания XMPP-клиентов. В таком случае, вы можете написать небольшой XMPP клиент, который будет пытаться зарегистрировать аккаунт на xmpp сервере (будучи ejabberd или любым другим), который присоединяется к MUC комнате, настраивает ее на постоянство, затем запрашивает списки комнат...
Совершенно другой подход заключается в вызове команд API, которые предоставляет ejabberd. Как вы можете видеть в API документации, там есть команды для выполнения именно того, что вы хотите, и многое другое: register, create_room_with_opts, muc_online_rooms.
А как вызвать этот API? Для игры и проверки того, что делают эти команды, вы можете использовать скрипт командной строки ejabberdctl
. Возможно, позже вы захотите использовать ReST (тогда настройте mod_http_api) или XML-RPC (в этом случае настройте ejabberd_xmlrpc). См.
Понимание команд ejabberd, а также ознакомьтесь с примером конфигурации и примером вызовов с использованием curl.