failed: Error during WebSocket handshake: Invalid status line

WBOY
Freigeben: 2016-06-06 20:31:58
Original
2048 Leute haben es durchsucht

实验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>
Nach dem Login kopieren
Nach dem Login kopieren
<code>客户端是用html5的socket接口,代码如下:
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<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>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

实验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>
Nach dem Login kopieren
Nach dem Login kopieren
<code>客户端是用html5的socket接口,代码如下:
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<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>
Nach dem Login kopieren
Nach dem Login kopieren

服务端改成swoole_websocket_server

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!