试图在Meteor-> Modulus上下文中绕过websockets和xhr。我一直注意到有时响应时间很长,这显然是由于websocket在无法连接时回落到xhr的缘故...我正在尝试诊断原因。

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

我到目前为止已经完成/检查过的事情

  • 升级所有内容:该应用程序已在1.0.2.1(最新)上运行,但最初是创建的
    在〜0.65天内。作为第一笔订单,我升级了
    将标准应用程序包转换为 meteor 平台包,然后重新启动
    服务器。没变。
  • 模量:Check ... Modulus不需要任何显式命令即可启用安全的Websockets
  • meteor :检查...自Meteor 0.6.3.1起,默认情况下已启用Websocket。
  • 出版物大小:我敢肯定自己的节俭可能会更节俭
    出版物,但似乎总共约1.4kb。
  • 浏览器安全策略:合理确定这是可以的(请参见下文)

  • 相对新手来说,因此非常感谢您对下一步检查的任何想法或建议。

    PS-类似的未解决问题herehere
      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/

    10-11 12:31