Как интегрировать 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.

Вернуться на верх