The EASY way to fix adds Sec-WebSocket-Accept information when do_handshake the code as shown below:
list($resource,$host,$origin,$key) = $this->getheaders($buffer); $accept = base64_encode(SHA1($key."258EAFA5-E914-47DA-95CA-C5AB0DC85B11", true)); $upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" . "Upgrade: WebSocket\r\n" . "Connection: Upgrade\r\n" . "WebSocket-Origin: {$origin}\r\n" . "WebSocket-Location: ws://{$host}{$resource}\r\n". "Sec-WebSocket-Accept: " . $accept . "\r\n\r\n"; $this->handshakes[$socket_index] = true; socket_write($socket,$upgrade,strlen($upgrade));
Where
$accept = base64_encode(SHA1($key."258EAFA5-E914-47DA-95CA-C5AB0DC85B11", true));
$ key Sec-WebSocket-Key received from $ buffer, you can print_r ($ buffer) look.
Hope this can solve your problem.
source share