HTTPS 上的 Atmosphere Websockets

Posted

技术标签:

【中文标题】HTTPS 上的 Atmosphere Websockets【英文标题】:Atmosphere Websockets over HTTPS 【发布时间】:2019-04-24 13:55:37 【问题描述】:

我使用基于 Atmosphere 的 Web 套接字开发了一个多聊天室,它通过 HTTP 连接运行良好。但是,当我尝试使用基于 HTTPS 的连接时,它会失败。

我使用了 Atmosphere 的 Simple Broadcaster 策略,在调试时发现它确实进入了@OnReady 函数。 但是,广播器连接很快就会中止,因此@OnMessage 中不会执行任何代码。 我已经在 AWS 上部署了应用程序并打开了必要的端口。 我在两者之间使用过nginx。已设置 nginx 的 Websocket 配置。 以下是相同的代码。

            # WebSocket support

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

我们还需要做些什么来允许来自 HTTPS 的 websocket 响应吗?

【问题讨论】:

SSL 证书配置是否正确?我的意思是它需要受信任的证书等吗?这应该在 Nginx 上完成。 【参考方案1】:

当我以 .jar 运行我的应用程序时,我也遇到了同样的问题,但是当我 更改了应用程序并在 .war 上运行它,它运行良好。

虽然我不确定为什么将应用程序作为 .jar 运行会出现问题,但您可以尝试一下。

【讨论】:

以上是关于HTTPS 上的 Atmosphere Websockets的主要内容,如果未能解决你的问题,请参考以下文章

Atmosphere - Nginx 作为 https->http 转发器 - websocket 不工作

具有每个请求问题(Hibernate 和 Shiro)的 WebSocket(Atmosphere) - Vaadin

使用 java 和 Atmosphere 的基本聊天应用程序

Atmosphere 框架,BroadcasterFactory.getDefault() 替代方案

重新连接到服务器时如何强制 Atmosphere.js 使用首选传输?

如何使用 Atmosphere 框架调用传统的 REST-RPC 调用?