У меня есть приложение, в котором я отправляю сообщение xmpp на некоторые устройства. Это успешно работает. Но теперь я хочу получить список (список подключенных пользователей), и я получаю пустой массив, однако там есть 4 пользователя. Вот мой код
require_once($_SERVER["DOCUMENT_ROOT"]."/lib/xmpphp/XMPP.php");
$con=$conf->getXMPPObj();
try {
$con->useEncryption(false);
$con->connect();
$con->processUntil('session_start');
$con->presence();
$roster=$con->roster->getRoster();
var_dump($roster);
//$con->processUntil('roster_received');
if (strpos($_POST['msg'],'CamMode')!==false)
{
$con->message("user@host" ,$_POST['msg']);
}
else
{
$con->message("user@host",$_POST['msg']);
}
$con->disconnect();
}
catch(XMPPHP_Exception $e)
{
die($e->getMessage());
}
сообщения успешно отправлены, но дамп $roster
пустой. В чем дело?
Я добавляю это: $con->processUntil(array('session_start', 'roster_received'));
а также $con->processTime(5);
Это сработало для меня.
...
$con->connect();
$payloads = $con->processUntil(array('session_start', 'roster_received'));
$con->presence();
$con->processTime(5);
$roster = $con->roster->getRoster();
...
Других решений пока нет …