说明有客户端使用了非https或wss的协议在连接服务端, 换句话:两端通信协议必须一致。
服务端代码
$context = array( 'ssl' => array( 'local_cert' => '/www/server/panel/vhost/cert/xcx.youyingkeji12388.com/fullchain.pem', 'local_pk' => '/www/server/panel/vhost/cert/xcx.youyingkeji12388.com/privkey.pem', 'verify_peer' => false, ) ); $worker = new Worker('websocket://0.0.0.0:8282',$context); $worker->transport = 'ssl';
apache ssl配置
ProxyRequests Off ProxyPass /wss ws://127.0.0.1:8282 ProxyPassReverse /wss ws://127.0.0.1:8282
客户端
socket.connect('wss://xcx.huke.com/wss');
1、配置看上去没什么问题,但是访问8282端口的客户端不一定是你提供的这个客户端,换句话:确认下是否还有其它的客户端在直连8282端口; 2、正常的按照你这种架构,8282端口应该有某种防火墙策略才对;
没有其它客户端 只有apache代理这个端口。按照文档配置就出现这种情况
刚看错了, workerman部分不能再次设置 ssl , 即: 去掉 $worker->transport = 'ssl';
说明有客户端使用了非https或wss的协议在连接服务端, 换句话:两端通信协议必须一致。
服务端代码
apache ssl配置
客户端
1、配置看上去没什么问题,但是访问8282端口的客户端不一定是你提供的这个客户端,换句话:确认下是否还有其它的客户端在直连8282端口;
2、正常的按照你这种架构,8282端口应该有某种防火墙策略才对;
没有其它客户端 只有apache代理这个端口。按照文档配置就出现这种情况
刚看错了, workerman部分不能再次设置 ssl , 即: 去掉 $worker->transport = 'ssl';