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