Home > Article > Backend Development > failed: Error during WebSocket handshake: Invalid status line
实验socket的时候总是报上面的错误
服务器端用的是php代码:
<code>error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '127.0.0.1'; $port = 10005; //创建端口 if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n"; } //绑定 if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } //监听 if (socket_listen($sock, 5) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } do { //得到一个链接 if (($msgsock = socket_accept($sock)) === false) { echo "socket_accepty() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; break; } //welcome 发送到客户端 $msg = "<font color="red">server send:welcome</font><br>"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 8192); $talkback = "received message:\n$buf\n"; echo $talkback; if (false === socket_write($msgsock, $talkback, strlen($talkback))) { echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } else { echo 'send success'.PHP_EOL; } socket_close($msgsock); } while (true); //关闭socket socket_close($sock); </code>
<code>客户端是用html5的socket接口,代码如下: </code>
<code>ws = new WebSocket("ws://127.0.0.1:10005"); ws.onopen = function() { //var relogin_data = JSON.stringify({"type":"re_login","client_name":"aaaaa"}); ws.send('aaaaaaaaa'); }; ws.onmessage = function(e) { console.log(e); }; ws.onclose = function() { console.log("onclose"); }; ws.onerror = function() { console.log("onerror"); }; </code>
实验socket的时候总是报上面的错误
服务器端用的是php代码:
<code>error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '127.0.0.1'; $port = 10005; //创建端口 if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n"; } //绑定 if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } //监听 if (socket_listen($sock, 5) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } do { //得到一个链接 if (($msgsock = socket_accept($sock)) === false) { echo "socket_accepty() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; break; } //welcome 发送到客户端 $msg = "<font color="red">server send:welcome</font><br>"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 8192); $talkback = "received message:\n$buf\n"; echo $talkback; if (false === socket_write($msgsock, $talkback, strlen($talkback))) { echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } else { echo 'send success'.PHP_EOL; } socket_close($msgsock); } while (true); //关闭socket socket_close($sock); </code>
<code>客户端是用html5的socket接口,代码如下: </code>
<code>ws = new WebSocket("ws://127.0.0.1:10005"); ws.onopen = function() { //var relogin_data = JSON.stringify({"type":"re_login","client_name":"aaaaa"}); ws.send('aaaaaaaaa'); }; ws.onmessage = function(e) { console.log(e); }; ws.onclose = function() { console.log("onclose"); }; ws.onerror = function() { console.log("onerror"); }; </code>
服务端改成swoole_websocket_server