试图在 Meteor -> Modulus 上下文中了解 websockets 和 xhr。我注意到有时响应时间很长,显然是由于 websockets 在无法连接时回退到 xhr ......我正在尝试诊断原因。
生产应用程序托管在 Modulus 上。启用 SSL。
到目前为止我做过/检查过的事情
- 升级所有东西:该应用程序一直在 1.0.2.1(最新)上运行,但最初是在 ~0.65 天内创建的。作为首要任务,我将标准应用程序包升级为流星平台包并重新启动服务器。不用找了。
- Modulus:检查...Modulus 不需要任何显式命令来启用安全 websocket
- Meteor:检查...从Meteor 0.6.3.1 开始, websockets 默认启用。
- 出版物大小:我确信我的出版物可以更节俭一些,但这些出版物的总大小似乎约为 1.4kb。
- 浏览器安全策略:有理由确定这是可以的(见下文)
这里是相对新手,因此非常感谢您对下一步检查的任何想法或建议。
BrowserPolicy.content.disallowConnect();
//
//Allow Meteor DDP Connections
//
var rootUrl = __meteor_runtime_config__.ROOT_URL;
console.log('ROOT_URL: ' + rootUrl);
//Allow DDP connections for local development
if (rootUrl == 'http://localhost:3000/') {
BrowserPolicy.content.allowConnectOrigin(rootUrl);
BrowserPolicy.content.allowConnectOrigin(rootUrl.replace(/http(s?)/, 'ws$1'));
}
//Allow DDP connections for staging server currently using Meteor's free hosting
if (rootUrl == 'http://staging.example.com') {
BrowserPolicy.content.allowConnectOrigin('https://*.meteor.com');
BrowserPolicy.content.allowConnectOrigin('wss://*.meteor.com');
}
//Allow DDP connections for Modulus
if (rootUrl == 'https://myappname-12345.onmodulus.net') {
BrowserPolicy.content.allowConnectOrigin('https://example.com');
BrowserPolicy.content.allowConnectOrigin('wss://example.com');
}
更新:
为了安全起见,将 Modulus ROOT_URL 更改为您的自定义域。就这样https://myappname-12345.onmodulus.net
变成了https://example.com
。