棘轮和 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

棘轮、wss 和 nginx 配置

WebSocket 不适用于 https 请求,并且它与使用 PHP 棘轮库的 http 一起正常工作

无法设置棘轮

棘轮服务器与长轮询

安全的 Websocket 连接 (wss:) 在 tomcat / spring 中中止,而 https 正在工作