棘轮和 WSS 无法正常工作
Posted
技术标签:
【中文标题】棘轮和 WSS 无法正常工作【英文标题】:Ratchet and WSS not working properly 【发布时间】:2017-02-07 09:57:13 【问题描述】:经过研究,我将尝试解释我试图解决问题的整个过程。
首先,我的想法是通过服务器与我的应用程序的用户建立 WebSocket 连接,以基本上共享一些信息,如果我们不在 SSL 下,所有这些过程都可以完美运行。
在我的服务器得到保护的那一刻,我收到两条消息,首先,我无法在 SSL 下连接到不安全的 WebSocket 服务,原因很明显。然后我尝试了安全连接,也因为 400 次握手失败而失败。
然后我开始研究这个问题,我看到棘轮文档没有告诉我关于这个问题的任何新信息,至少找不到。之后,我找到了这个。
php ratchet websocket SSL connect?
我要求我的供应商安装和配置这个 Apache 模块(Apache 版本 2.4.25,以防提供任何有价值的信息)。配置工作,因为现在我可以与 ws://www.website.com /ws/ 建立连接并且工作正常。但是现在当我尝试 wss 连接时,我得到了一个超时的响应:
/* Apache 错误
[Mon Feb 06 16:49:02.966991 2017] [cgi:error] [pid 8969] (70014)End of file found: [client ipadress:port] AH01225: Error reading request entity data [Mon Feb 06 16:51:42.530383 2017] [cgi:error] [pid 9837] (70014)End of file found: [client ipadress:port] AH01225: Error reading request entity data
*/
最后,关于 Stunnel 配置,我不确定我应该在这些变量上使用哪些端口。
https://www.stunnel.org/config_unix.html
[websockets]
accept = 8443
connect = 8888 //i guess here the port where my WS is running?
目前,根据我所做的所有这些信息和研究,我无法找到任何其他可以帮助我解决此问题的线索。
提前致谢。
【问题讨论】:
【参考方案1】:请在此处查看答案,我在这里分享了如何配置 Apache 服务器以同时访问 wss:// 和 ws://。
PHP websocket on SSL with proxy_wsTunnel - Apache
【讨论】:
【参考方案2】:在与 Radchet 苦苦挣扎数小时后,我终于可以在带有 IIS 10.0 的新 Windows 2016 机器上运行它了。
我的 Ratchat 服务器从命令行启动,并在 localhost:8585 上运行
使用带有 IIS10.0 的 Windows 2016,安装了 Websocket 功能(但未在 IIS 中使用)。 创建了一个新网站,在端口 443 上使用 HTTPS 绑定。 此站点是一个虚拟站点,没有 html / web 文件。 创建应用代理重写规则,见 web.config: 客户端可以连接到 wss://yoursertcomin.com:443,IIS 会将请求传递给 Ratchet。我们的应用程序现在通过 WSS 启动并运行。
PS:使用环回 IP 地址 127.0.0.1 而不是 'localhost',否则连接需要 1 秒,现在是几毫秒。
【讨论】:
由于缺少 web.config,请您更新您的答案。以上是关于棘轮和 WSS 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
iis8 上 WSS 上的 Ratchet Websockets