Задать вопрос
@zeddicus

Ratchet handeshake не проходит верификацию, в чем проблема?

Добрый день

Помогите разобраться, на стороне клиента создали соединение через
var conn = new WebSocket('wss://site.com:45333/ws/');

На серваке через nginx proxy запрос попадает на php скрипт, где запущен ratchet ws server
$server = IoServer::factory(new HttpServer(new WsServer(new Chat()), 45340);
$server->run();

Тут вопросов нет, контакт есть, но ratchet возвращает 400 ошибку во время рукопожатия, т.к. одно из условий не проходит проверку, а именно:

ServerNegotianor.php
if (true !== $this->verifier->verifyKey($request->getHeader('Sec-Websocket-Key'))){

}


public function verifyKey($keyHeader) {
        return (1 === count($keyHeader) && 16 === strlen(base64_decode($keyHeader[0])));
    }


Только браузер почти никогда не попадает с генерацией нужной длинны заголовка.
Если закомментировать условие, то соединение проходит нормально.
Как понять почему не проходит условие?
  • Вопрос задан
  • 27 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 14:45
25000 руб./за проект
18 дек. 2024, в 14:43
25000 руб./за проект
18 дек. 2024, в 14:22
750 руб./за проект