@aleksmisha

Проблема заголовка Sec-Web-Socket-Accept, как исправить?

Здравствуйте, помогите исправить, я на php сделал сокет-сервер, через программу пытаюсь к нему подключится, но она пишет что неправильный заголовок secwebsocketaccept. Браузер пишет это-же.
Кстати если что, я подключаюсь к сокету по этому адресу ws://aneme3.000webhostapp.com/server/s
impleworking/simpleworking.php
Вот код для обработки и создания этого заголовка :
<?php
$SecWebSocketKey=$_SERVER['HTTP_Sec_WebSocket_Key'];
$SecWebSocketAccept = base64_encode(pack('H*', sha1($SecWebSocketKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));
$response = "HTTP/1.1 101 Web Socket Protocol Handshake" .
"Upgrade: websocket" .
"Connection: Upgrade" .
"Sec-WebSocket-Accept:$SecWebSocketAccept";
header("HTTP/1.1 101 Web Socket Protocol Handshake\r\n");
header("Upgrade: websocket\r\n");
header("Connection: Upgrade\r\n");
header("Sec-WebSocket-Accept: $SecWebSocketAccept\r\n\r\n");

Только прошу не предлагать переходить на node js, консоль тоже не надо, надо только на php.
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Возьмите Ratchet и не жуйте себе мозги.
Ответ написан
SerafimArts
@SerafimArts
Senior Notepad Reader
Есть подозрения, что pack не нужен:
// SEC_KEY_UUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
// $key = Sec-WebSocket-Key header

$accept = \base64_encode(\sha1($key . self::SEC_KEY_UUID, true));
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы