我正在运行ratchet webSocket 服务器并且运行良好。 问题是一些连接在握手后立即关闭。
搜索 stackOverflow 和 google 后,我发现我应该使用 wss,因为使用 ssl 会阻止连接被关闭。经过更多阅读后,我发现 wss 尚未在 Ratchet 中实现,解决方案是使用 stunnel 来扭曲 Ratchet 。我再次搜索有关如何实现这一点的帮助,但发现没有。
如何使用 stunnel 扭曲 Ratchet ?有更好的方法来解决这个问题吗? 我真的是所有 ssl 问题的新手。
谢谢!
最佳答案
将您的 Ratchet 网络套接字设置为仅接受本地连接:
$webSock = new Server($loop);
$webSock->listen(8080, '127.0.0.1'); // local connections only
$session = $this->getContainer()->get('session.provider');
$server = new IoServer(new WsServer($session), $webSock, $loop);
生成服务器证书。 ubuntu 的好说明 here .
现在安装 stunnel。 Ubuntu说明here .
配置 stunnel 以使用新证书并接受安全端口上的连接,并将它们通过隧道传输到您的 Websocket 服务器:
cert = /etc/ssl/certs/server.crt
key = /etc/ssl/private/server.key
...
[websockets]
accept = 8443
connect = 8080
启动 stunnel,你就可以开始比赛了。
关于ssl - 带隧道的扭曲 Ratchet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403905/