请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

websocket连接不上服务器,提示Provisional headers are shown

老师我的服务器代码是部署在阿里云服务器上,LNMP环境。

服务端ws_server.php代码:

$server = new swoole_websocket_server("0.0.0.0", 8812);
//$server->set([]);
$server->set(
    [
        'enable_static_handler' => true,
        'document_root' => "/home/wwwroot/www.lingyuan88.com/public/swoole/data",
    ]
);
//监听websocket连接打开事件
$server->on('open', 'onOpen');
function onOpen($server, $request) {
    print_r($request->fd);
}

// 监听ws消息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "singwa-push-secesss");
});

$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});

$server->start();


客户端ws_client.html代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
<h1>singwa-swoole-ws测试</h1>
  <script>
    var wsUrl = "ws://120.77.206.215:8812";

    var websocket = new WebSocket(wsUrl);

    //实例对象的onopen属性
    websocket.onopen = function(evt) {
      websocket.send("hello-sinwa");
      console.log("conected-swoole-success");
    }

    // 实例化 onmessage
    websocket.onmessage = function(evt) {
      console.log("ws-server-return-data:" + evt.data);
    }

    //onclose
    websocket.onclose = function(evt) {
      console.log("close");
    }
    //onerror

    websocket.onerror = function(evt, e) {
      console.log("error:" + evt.data);
    }

 </script>
</body>
</html>



https://img1.sycdn.imooc.com//szimg/5addb98b0001b4b206510057.jpg


1. 在浏览器不加8812端口执行后结果提交:Provisional headers are shown

//img1.sycdn.imooc.com//szimg/5addb4b40001c67712630370.jpg

//img1.sycdn.imooc.com//szimg/5addb5120001e4cd16150298.jpg

//img1.sycdn.imooc.com//szimg/5addb5120001353d17750718.jpg



2. 在浏览器加8812端口执行后结果提交:Provisional headers are shown

https://img1.sycdn.imooc.com//szimg/5addb97200014d2217460489.jpg

13440
收起

正在回答 回答被采纳积分+3

3回答

提问者 唐成勇 2018-04-23 22:18:47

哈哈,终于在看了这边文章阿里云服务器 ECS 访问不了公网 ip 可能的原因及解决方法找到答案了,原来是阿里云控制台设置问题:安全组规则->添加安全组规则, 把相应的端口号打开就可以了。

https://img1.sycdn.imooc.com//szimg/5addea1e00018e9013510234.jpg


4 回复 有任何疑惑可以回复我~
风行天下1 2018-11-16 15:26:25

以前遇到过, 也是每个端口都要去打开

1 回复 有任何疑惑可以回复我~
charset 2018-04-24 00:35:15

敬你是条汉子

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信