流星,模数和安全网络套接字



试图在流星 -> 模数上下文中了解 websockets 和 xhr。我有时注意到响应时间很长,显然是由于 websocket 在无法连接时回退到 xhr......我正在尝试诊断原因。

生产应用托管在 Modulus 上。已启用 SSL。

到目前为止我做过/检查过的事情

  1. 升级所有内容:该应用程序一直在 1.0.2.1(最新版本)上运行,但最初是创建的在~0.65天内。作为第一订单,我升级了标准应用程序包到流星平台包,并重新启动服务器。没有变化。
  2. 模量:检查...模数不需要任何显式命令来启用安全 websocket
  3. 流星: 检查...从 Meteor 0.6.3.1 开始,默认情况下启用 websockets。
  4. 出版物大小:我相信我可以在我的出版物,但这些出版物似乎总共约为 1.4kb。
  5. 浏览器安全策略:合理确定这是可以的(见下文)

这里的新手,所以任何关于接下来要检查的想法或建议都非常感谢。

PS - 这里和这里类似的、未回答的问题

  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');
  }

更新:
为了安全起见,请将模量ROOT_URL更改为自定义域。所以https://myappname-12345.onmodulus.net变得https://example.com.

无论你做什么,可能至少有一小部分用户会回退到 XHR。WebSocket 仍然没有在所有地方完全受支持,尤其是在移动设备上。使用SSL可以为您提供更广泛的支持,但仍然不是无处不在。

只要 WebSocket 看起来对您有用,您就无能为力。 根据设计,XHR 将具有很长的响应时间。XHR的工作原理是打开与服务器的长(~30s)连接。如果服务器无话可说,它将关闭连接并再次执行。这允许服务器在 30 秒窗口内随时立即响应。这些 XHR 民意调查显示响应时间很长,但完全正常。

否认:我是模数员工

相关内容

  • 没有找到相关文章

最新更新