XMPP пересматривает поток - PullRequest
0 голосов
/ 26 апреля 2019

Я создал собственную библиотеку XMPP-PHP и только что реализовал поддержку TLS. У меня проблема с пересмотром потока.

Если я отправляю <starttls>, мне обязательно нужно сначала получить ответ от сервера, чтобы установить соединение, разрешающее шифрование:

stream_socket_enable_crypto($this->socket->connection, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);

Если я не запускаю метод getResponse(), который в основном:

public function getResponse(): string
{
    $response = '';
    while ($out = fgets($this->socket->connection)) {
        $response .= $out;
    }

    return $response;
}

Я получаю следующее:

Предупреждение: stream_socket_enable_crypto (): операция SSL не выполнена с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 140770FC: процедуры SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол в /.../xmpp-php/src/XmppClient.php в строке 121

Это делает невозможным для меня установить соединение TLS "за кулисами". Если я включу ответную часть извлечения, все будет работать как надо.

Как я могу предотвратить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...