Ratchet WebSocket安全环境下无法连接问题求助
Windows服务器下Ratchet WebSocket WSS连接失败问题
在Windows服务器项目中使用Ratchet WebSocket,非安全环境运行完全正常:访问http://www.example.com时,通过ws://连接8686端口的WebSocket服务器无任何问题。服务器并非通过IIS运行,而是通过命令行执行启动:
php wsocket-server.php [...parameters...]
但启用Ratchet服务器的SSL配置后,从https://www.example.com尝试通过wss://连接时,浏览器无法建立WebSocket连接——尽管服务器启动正常,且非安全站点仍可通过ws://正常连接。
已添加的SSL相关配置代码如下:
use Ratchet\Server\IoServer; use Ratchet\Http\HttpServer; use Ratchet\WebSocket\WsServer; $websocket_server = new WsServer(); if ($site_secure){ //RUN WSS (SECURE) SERVER $options = [ 'local_cert' => 'c:\inetpub\ssl\2c6fa1928847451c.crt', 'local_pk' => 'c:\inetpub\ssl\2c6fa1928847451c.key', 'allow_self_signed' => true, 'verify_peer' => false ]; $loop = React\EventLoop\Factory::create(); $websocket_server->enableKeepAlive($loop); $app = new HttpServer($websocket_server); $insecure_websockets = new \React\Socket\Server('0.0.0.0:'.$port, $loop); $secure_websockets = new \React\Socket\SecureServer($insecure_websockets , $loop, $options); $secure_websockets_server = new \Ratchet\Server\IoServer($app, $secure_websockets, $loop); $secure_websockets_server->run(); }else{ //RUN WS (INSECURE) SERVER $http_server = new HttpServer($websocket_server); $server = IoServer::factory($http_server, $port); $websocket->log ("Initializing ".(($site_secure) ? "Secure " : "Insecure ").("Server ($port)")); $server->run(); }
已尝试的解决措施:
- 确认Windows防火墙已开放对应端口
- 使用netstat确认端口未被其他进程占用
- 尝试过nginx反向代理,但存在启动问题,更希望使用Ratchet原生能力
- 查阅过相关问题帖
- 尝试过多个端口,包括非安全环境使用的8686端口
该问题已困扰两周,寻求解决帮助。
内容的提问来源于stack exchange,提问作者Dutchie432
相关产品推荐
相关产品推荐

