У меня есть свой собственный сервер просодии и я могу подключиться к нему через Windows XMPP клиент. На сервере есть две учетные записи, и я могу подключиться к ним обеим и обмениваться сообщениями между ними (я использую встроенный клиент в Mozilla Thunderbird).
У меня настроен виртуальный хост на сервере («domain.com»).
Я сейчас пытаюсь подключиться к серверу через PHP в качестве одной из учетных записей и отправить сообщение другой. Я выбрал JAXL для этого.
$client = new JAXL(array(
'jid' => 'username',
'host' => 'domain.com',
'pass' => 'mylongcomplicatedpassword',
'auth_type' => 'SCRAM-SHA-1',
'log_level' => JAXLLogger::DEBUG,
'log_path' => './jaxl.log',
'strict' => false,
));
$client->start();
Обратите внимание на формат «JID». Это приводит к ошибке «Этот сервер не обслуживает имя пользователя».
Если я изменяю jid на [email protected], я получаю вместо этого «Неверное имя пользователя».
Если я добавлю
$client->require_xep(array('0114'));
перед началом () я получаю «Этот сервер не обслуживает …». в обоих форматах JID.
Что может быть не так? Это работает на PHP 7.1 и последних версиях JAXL и просодии.
Задача ещё не решена.
Других решений пока нет …