Javascript WebSocket失败

Javascript WebSocket失败,javascript,php,websocket,Javascript,Php,Websocket,我尝试使用WebSocket创建服务器。 我发送了一个密钥来回复,但套接字仍然不接受连接 到“ws://sigame:8640/”的WebSocket连接失败:WebSocket握手期间出错:net::ERR\u无效\u HTTP\u响应 server.php <? $host = "sigame"; $port = "8640"; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); so

我尝试使用WebSocket创建服务器。 我发送了一个密钥来回复,但套接字仍然不接受连接 到“ws://sigame:8640/”的WebSocket连接失败:WebSocket握手期间出错:net::ERR\u无效\u HTTP\u响应

server.php

<?
$host = "sigame";
$port = "8640";

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
$res = socket_bind($socket, "0", $port);

$res = socket_listen($socket);

echo "Listen\n";

do {
    $accept = socket_accept($socket);

    echo "accepted\n"; 

    $msg = socket_read($accept, 2048);

    echo $msg;

    $temp = preg_split("~\r\n~", $msg);

    $headers = array();


    foreach ($temp as $line) {
        $line = rtrim($line);

        if (preg_match('~\A(\S+): (.*)\z~', $line, $matches)) {
            $headers[$matches[1]] = $matches[2];

        }
    }

    $key = $headers['Sec-WebSocket-Key'];

    $hash = $key.'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; 
    $hash = sha1($hash,true);
    $sKey = base64_encode($hash); 

    $headersResp = "    
        HTTP/1.1 101 Switching Protocols\n\r
        Upgrade: websocket\n\r
        Connection: Upgrade\n\r
        Sec-WebSocket-Accept: $sKey\n\r
    ";

    echo $headersResp;

    socket_write($accept, $headersResp);


} while(true);

socket_close($socket);
?>

客户端

<script type="text/javascript">

    const socket = new WebSocket('ws://sigame:8640');

    socket.addEventListener('open', function (event) {
        socket.send('Hello Server!');
    });

    socket.addEventListener('message', function (event) {
        console.log('Message from server ', event.data);
    });

    socket.onerror = function(event)
    {
        console.log(event);
        console.log(event.message);
    }


</script>

constsocket=newwebsocket('ws://sigame:8640');
socket.addEventListener('open',函数(事件){
send('Hello Server!');
});
socket.addEventListener('message',函数(事件){
console.log('来自服务器的消息',event.data);
});
socket.onerror=函数(事件)
{
console.log(事件);
console.log(事件消息);
}
控制台: 我使用OpenServer、PHP7.1、Apache2.4 我哪里出错了?我怎样才能解决这个问题