试图在Meteor-> Modulus上下文中绕过websockets和xhr。我一直注意到有时响应时间很长,这显然是由于websocket在无法连接时回落到xhr的缘故...我正在尝试诊断原因。
生产应用程序将托管在Modulus上。已启用SSL。
我到目前为止已经完成/检查过的事情
在〜0.65天内。作为第一笔订单,我升级了
将标准应用程序包转换为 meteor 平台包,然后重新启动
服务器。没变。
出版物,但似乎总共约1.4kb。
相对新手来说,因此非常感谢您对下一步检查的任何想法或建议。
PS-类似的未解决问题here和here
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
。 最佳答案
无论您做什么,都可能至少有一小部分用户会退回到XHR。 WebSockets仍未在任何地方得到完全支持,尤其是在移动设备上。使用SSL可为您提供更广泛的支持,但仍无处不在。
只要WebSockets似乎对您有用,您就无能为力了。根据设计,XHR将具有非常长的响应时间。 XHR通过打开与服务器的长连接(约30秒)来工作。如果服务器无话可说,它将关闭连接并再次进行连接。这使服务器可以在30秒钟的窗口中随时响应。这些XHR民意测验显示出很长的响应时间,但完全正常。
免责声明:我是Modulus员工
关于javascript - meteor ,模量和安全的网络套接字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27804363/