首先说明下我的情况1.阿里云环境已经成功编译安装了swoole,phpinfo已经php -m 都已支持  
2.在cli下 php server.php 之后,可以netstat -tpl 可以发现8811端口(我自定义的)已经监听中
3.在本地电脑 telnet IP 8811 可以链接 但状态对错 未知。
4.在服务器另一个shell界面 telnet IP 8811 和swoole通信一切正常。
5.在本机用HTML的websocket 连接 swoole服务,提示如下图
6.在服务器打印状态如下
就是一直是断开,连接,断开,连接的循环。。==============分割线1.网上搜索 有的说是阿里云的安全组限制了端口 我在安全组已经开启了 该端口 并重启。未果。
2.有的说是防火墙,我关闭了防火墙  未果。。
求大神给个方案。现在小弟学习swoole中。现在已经被这个环境搞疯了

解决方案 »

  1.   

    用nginx代理一下
    比如域名是
    www.test.comupstream wss_server_pool{
    server 127.0.0.1:8811;
    }
    server{
    listen 80;
    server_name www.test.com;
        ...
    #代理wss
    location /ws/ {
    proxy_pass http://wss_server_pool;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade"; proxy_set_header X-real-ip $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
        ...
    }访问 
    ws://www.test.com/ws
      

  2.   

    不用代理那么麻烦,默认情况下新的端口阿里云的策略是不放开访问的,你改一下你ECS的安全组策略