gatewaywoker,创建wss服务,报'ssl handshake fail, stream_socket_enable_crypto return 0'错误

章鱼哥

windows下,证书是正确的,用nginx代理可以正常使用;workerman版本是3.3.8;php是5.6.8,开启了openssl。
客户端连接时,报
exception 'Exception' with message 'ssl handshake fail, stream_socket_enable_crypto return 0' in WorkerMan\workerman\Connection\TcpConnection.php:394

请问,这个要怎么解决?

阅读 2489
1个回答

walkor

有没有改动过workerman源码?
看到php手册说只有非阻塞的socket stream_socket_enable_crypto才会返回0,
但是开启ssl的时候socket是阻塞的,按照手册不可能返回0.

还有就是客户端到服务端的网络延迟如何?看下php日志这一行有没有其它的waring?

  • 章鱼哥 2017-02-13

    workerman源码没修改过;本机测试,所以没什么延迟;php日志里没有其他waring;

  • 章鱼哥 2017-02-13

    @1:还是不行,我用workerman试了一下,还是报exception 'Exception' with message 'ssl handshake fail, stream_socket_enable_crypto return 0' ,能给我一个demo试试吗?

  • walkor 2017-02-14

    代码都不一样了,不会报这个错了,应该是你/Connection/TcpConnection.php没替换成功,或者替换了没重启

  • 章鱼哥 2017-02-14

    @1:上面的错误是workerman的TcpConnection.php没替换的结果,替换了的,报这个错误
    exception 'Exception' with message 'SSL handshake fail ' in D:\Program Files\Apa
    che2.2.25\htdocs\workerman\workerman-for-win-master\workerman\Connection\TcpConn
    ection.php:398