XMPP-клиент получает сообщения от сервера

Я реализую свою собственную PHP-библиотеку XMPP (Packagist РЕПО) и у меня проблемы с получением сообщений (отправленных клиентом) с XMPP-сервера.

Библиотека использует PHP-сокеты для подключения к серверу, и я могу получить ответ от сервера при первоначальном подключении и аутентификации. Я также могу отправить сообщение с сервера клиенту, и эта часть работает.

Я не могу получить сообщение.

Это код, который я использую при получении чего-либо от сервера:

public function getRawResponse()
{
// Wait max 3 seconds before terminating the socket
socket_set_option($this->socket, SOL_SOCKET, SO_RCVTIMEO, ["sec" => $this->options->getSocketWaitPeriod(), "usec" => 0]);

while ($out = socket_read($this->socket, 2048)) {
echo "*** Data ***\n\n";
echo str_replace("><", ">\n<", $out) . "\n\n";
echo "\n\n************\n";
}
}

это while Цикл здесь, чтобы получить все однопакетные ответы с сервера, и он читает с сервера, в то время как ему есть что читать, в противном случае он разрывает соединение.

В основной программе я, таким образом, делаю do{...}while(true) и помещая этот метод внутрь, чтобы он никогда не заканчивался никогда. Но все равно я не получаю никакого ответа при пересылке с клиента обратно на сервер.

0

Решение

Я обнаружил, что мне нужно отправить начальный пустой раздел присутствия на сервер

<presence/>

Когда я получил ответ от сервера, ответы на сообщения начали поступать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector