我正在运行棘轮 webSocket 服务器,它运行良好。问题是某些连接在握手后立即关闭。
在搜索 stackOverflow 和 google 后,我发现我应该使用 wss,因为使用 ssl 会阻止连接被关闭。经过更多阅读后,我发现 wss 尚未在棘轮中实现,解决方案是使用 stunnel 扭曲棘轮。我再次搜索有关如何实现此功能的帮助,但发现 non .
我如何用 stunnel 扭曲棘轮?有没有更好的方法来解决这个问题?我真的是一个新手,所有的 ssl 问题。
谢谢!
将您的棘轮 websocket 设置为仅接受本地连接:
$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说明。
现在安装stunnel。Ubuntu 说明在这里。
配置 stunnel 以使用新证书并接受安全端口上的连接并将它们通过隧道连接到您的 websocket 服务器:
cert = /etc/ssl/certs/server.crt
key = /etc/ssl/private/server.key
...
[websockets]
accept = 8443
connect = 8080
开始 stunnel,你应该去参加比赛。