failed: Error during WebSocket handshake: Invalid status line

來源:互聯網
上載者:User
實驗socket的時候總是報上面的錯誤
伺服器端用的是php代碼:

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 = "server send:welcome
"; 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);
用戶端是用html5的socket介面,代碼如下:
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");          };

回複內容:

實驗socket的時候總是報上面的錯誤
伺服器端用的是php代碼:

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 = "server send:welcome
"; 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);
用戶端是用html5的socket介面,代碼如下:
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");          };

服務端改成swoole_websocket_server

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.