Demeteorizer 编译流星应用程序并导致 WebSocket 连接错误?

Posted

技术标签:

【中文标题】Demeteorizer 编译流星应用程序并导致 WebSocket 连接错误?【英文标题】:Demeteorizer compiles meteor app and causes WebSocket connection error? 【发布时间】:2014-04-21 14:01:30 【问题描述】:

我有节点在 nginx 后面运行。在本地测试服务器上,我的流星应用程序运行良好(我使用的是默认流星安装)。当这个应用程序被分解并上传到服务器时(我使用的是 Nginx+node),错误发生在脚本的一部分。

应用程序正常,但数据读取被阻止。有什么建议吗?

到 'ws://www.all**.com/sockjs/867/rfk8snwm/websocket' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:400

非常感谢。

【问题讨论】:

【参考方案1】:

引用meteorpedia:

对于 nginx 上的 websockets 支持,您需要版本 >=1.4 并使用以下配置:

location /sockjs/ 
        proxy_pass http://APP_LOCATION;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

将 APP_LOCATION 替换为您的代理服务器定义或 url 等。 升级/连接行支持 WebSockets。

如果您无法将您的 nginx 安装升级到 1.4 或更高版本,那么您需要通过在系统上设置以下环境变量来明确禁用流星中的 websocket:

DISABLE_WEBSOCKETS=1

这将确保正确绕过 websocket 以支持 sockjs 后备。

【讨论】:

以上是关于Demeteorizer 编译流星应用程序并导致 WebSocket 连接错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在流星运行时编译新模板?

将流星部署到官方流星服务器光纤

流星cfs:文件系统从ios上传到服务器导致零字节文件

用C语言编写流星雨程序

如何在流星中使用 jQuery UI?

无法查看流星公共目录中的新文件