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

Posted

技术标签:

【中文标题】Atmosphere - Nginx 作为 https->http 转发器 - websocket 不工作【英文标题】:Atmosphere - Nginx as https->http forwarder - websocket not working 【发布时间】:2013-04-23 07:21:06 【问题描述】:

我正在使用 nginx 将 https 转换为 http 从客户端到服务器。

没有这种转发,我的氛围配置在 websocket 中运行良好。

现在,如果我在中间切换到带有 Nginx 的 https

var request =  url: "https://localhost/writever/chat",
                     contentType : "application/json",
                     logLevel : 'debug',
                     transport : transport ,
                     enableProtocol : true,
                     fallbackTransport: 'long-polling';

Websocket 连接在超时后失败并降级为长轮询。

您知道是否可以让 websocket 在这些条件下工作?

顺便说一句,最新的 nginx 1.3 支持 websocket 代理 - 仍处于开发模式。如果使用这种方法,对 AtmosphereHandler 有影响吗?

【问题讨论】:

【参考方案1】:

它不应该有所作为。但是看看:

http://goo.gl/04g8F

您可能想要添加此标题,看看是否会有所作为。我真诚地怀疑,但试试看。

-- 让弗朗索瓦

【讨论】:

thx jf,实际上它在 nginx 1.3.13+ 上运行良好,因为它现在支持 websocket 代理。我在这里发布了我的配置:***.com/questions/16178860/…

以上是关于Atmosphere - Nginx 作为 https->http 转发器 - websocket 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Nginx学习

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

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

nginx

JBoss EAP 6.1 上的 Atmosphere 和 WebSocket

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