Пытаюсь настроить вебсокет. В js просто создаю объект socket = new WebSocket("wss://3d-mitra.ru/test.php");
На серверной стороне прописал открытие сокета
define('PORT',"8080");
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//создаём сокет
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);//разрешаем использовать один порт для нескольких соединений
socket_bind($socket, "92.53.96.36" , PORT);//привязываем его к указанным ip и порту
socket_listen($socket);//слушаем сокет
// echo socket_strerror(socket_last_error($socket));
while (true) {
$newSocket = socket_accept($socket); //echo "ok";
var_dump($newSocke);
$header = socket_read($socket, 1024);
sendHeaders($header,$newSocket,'3d-mitra.ru', PORT);
}
socket_close($socket);
function sendHeaders($hederText,$newSocket,$host,$port){
$headers = array();
$tmpLine = preg_split('/\r\n/', $hederText);
foreach ($tmpLine as $line) {
$line = rtrim($line);
if (preg_match('/\A(\S+): (.*)\z/', $line, $matches)) {
$headers[$matches[1]] = $matches[2];
}
}
$sKey = base64_encode(pack('H*',sha1($headers['Sec-WebSocket-Key'].'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'))) ;
$strHeader = "HTTP/1.1 101 Switching Protocols\r\n" .
"Upgrade: websocket\r\n" .
"Connection: Upgrade\r\n" .
"Sec-WebSocket-Extensions: deflate-frame\r\n".
"Sec-WebSocket-Protocol: soap\r\n".
"Sec-WebSocket-Origin: $host".
"Sec-WebSocket-Location: wss://$host/test.php\r\n".
"Sec-WebSocket-Accept:$sKey\r\n\r\n";
socket_write($newSocket,$strHeader, strlen($strHeader));
}
Через ssh запускаю этот скрипт, ошибок не выдает, порт прослушивается.
Но соединится не получается, выпадает в 502 ошибку при попытке подключится