Cha*_*use 2 javascript websocket meteor sockjs modulus.io
试图在Meteor - > Modulus上下文中绕过websockets和xhr.我有时会注意到很长的响应时间,显然是因为当无法连接时,websockets会回落到xhr ...我正在尝试诊断原因.
生产应用程序正在Modulus上托管.已启用SSL.
到目前为止我做过/检查过的事情
相对新手在这里,所以任何关于下一步检查的想法或建议都非常感谢.
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');
}
Run Code Online (Sandbox Code Playgroud)
更新:
为了安全衡量,请将模数ROOT_URL更改为您的自定义域.因此https://myappname-12345.onmodulus.net变得https://example.com.
无论你做什么,你的用户中至少有一小部分会回归到XHR.到处都没有完全支持WebSockets,特别是在移动设备上.使用SSL可以获得更广泛的支持,但仍然无处不在.
只要WebSockets看起来对您有用,您就无法做其他事情.根据设计,XHR将具有非常长的响应时间.XHR通过打开与服务器的长(~30s)连接来工作.如果服务器无话可说,它将关闭连接并再次执行.这允许服务器在该30s窗口中的任何时间立即响应.这些XHR民意调查显示响应时间长,但完全正常.
免责声明:我是Modulus员工
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |