Meteor、Modulus 和安全 Websocket

2024-06-22

尝试在 Meteor -> Modulus 上下文中了解 websockets 和 xhr。我有时注意到响应时间过长,这显然是由于 websockets 在无法连接时回退到 xhr...我正在尝试诊断原因。

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

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

  1. 升级所有内容:该应用程序一直在 1.0.2.1(最新)运行,但最初是创建的 在~0.65天内。作为首要任务,我升级了 standard-app-packages 到meteor-platform 包并重新启动 服务器。不用找了。
  2. Modulus:检查...Modulus 不需要任何显式命令即可启用安全 Websocket
  3. Meteor:检查...截至流星0.6.3.1 https://stackoverflow.com/questions/11783729/why-are-websockets-disabled-in-the-browser默认情况下启用 websocket。
  4. 出版物大小:我确信我可以在我的 出版物,但这些似乎总共约为 1.4kb。
  5. 浏览器安全策略:合理确定这是可以的(见下文)

这里相对新手,因此非常感谢有关下一步检查内容的任何想法或建议。

PS - 类似的、未回答的问题here https://stackoverflow.com/questions/22447298/how-to-solve-the-meteor-js-websoket-interrupted-while-the-page-was-loading and here https://stackoverflow.com/questions/27296424/websockets-in-meteor-fails

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

UPDATE:
为了安全起见,请将 Modulus ROOT_URL 更改为您的自定义域。所以https://myappname-12345.onmodulus.net变成https://example.com.


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

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

免责声明:我是 Modulus 员工

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor、Modulus 和安全 Websocket 的相关文章

  • 替换文本区域的文字

    我制作了一个 javascript 函数来将文本区域中的某些单词替换为其他单词 但它不起作用 我做了这个 function wordCheck var text document getElementById eC value var ne
  • 如何在 Angular 中按 ID 显示博客详细信息

    我想在 Angular 中通过 ID 显示博客详细信息 为此 当您单击博客主页上的按钮时 应用程序会将您带到博客详细信息页面 即 pagina component html 文件 我实现了在此处显示所有博客 但我真正想要的是显示一个独特的博
  • 角度单元格 xlsx 着色

    我有一个问题 我想根据一个值在我的 exel 行中添加红色或绿色来下载 如何在工作表中设置指定单元格的颜色 这是处理 exel 格式的 ts 类 表达 import Injectable from angular core import a
  • Bootstrap 页脚不在底部

    我试图强制我的页脚位于网站底部 我不希望它在滚动时粘住 只是在向下滚动网页时出现在底部 目前 网页显示时页脚位于内容下方 我添加了这样的代码bottom 0 并发现它粘住了并且不适合我的网站 我还添加了这样的代码html body heig
  • 使用 mongoDB 插入子文档

    我收集了以下文件 id 2 workspace name 1 widgets name 2 widgets name 3 widgets name 4 widgets 我怎样才能插入 id 1 blabla blabla 在 小部件 中的
  • 有效 JSON 上的 Firefox JSON“格式不正确”错误

    我在 Firefox 中收到以下错误消息 Error not well formed Source File http school courses booking add php 1287657494723 Line 1 Column 1
  • 将值传递给映射函数 - CouchDB

    我想知道是否可以将值传递给 couchDB 设计文档中的映射函数 例如 在下面的代码中 可以传递用户输入的值并使用该值来运行地图函数 也许我可以传递用户UserName当他们登录时 然后根据地图功能显示视图 function doc if
  • Javascript CORS 图像/画布操作

    我正在尝试从另一个已配置为允许 CORS 的域检索图像 并操纵像素 然后我想显示结果并能够操纵结果 我可以在我请求的图像上使用 getImageData 和 toDataURL 所以我知道服务器部分可以工作 但是 当我尝试将图像的 src
  • 设置三个输入数字的最大值

    我有三个输入数字
  • 发送带有图像的嵌套 JSON

    我一直在尝试研究一种能够通过 Ajax 将嵌套 JSON 请求发送回服务器的方法 根据我的理解 我们主要用于向服务器发送图像或文件的 formdata 在这种情况下不起作用 因为 FormData 似乎不处理嵌套对象 这就是我需要发送的有效
  • JQuery mouseover 函数多次触发

    我很长时间以来一直使用这种方法来为整个类 按钮等 设置事件 div bigButton mouseover function this style backgroundColor dfdfdf 然而 在进行一些测试时 我刚刚注意到 当将鼠标
  • javascript 中的工厂模式与构造函数模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到了关于 javascript 设计模式的教程 虽然教程很好 但它给我留下了很少的问题 正如我所见 工厂和构造函数产生相同的结果
  • 提交外部有 INPUT 的表单,并修改值后

    我有一个form 有几个
  • 从数组中删除空字符串,同时保持记录而不循环?

    这个问题在这里被问到 从数组中删除空字符串 同时保留非空字符串的索引记录 https stackoverflow com questions 18113243 remove empty strings from array while ke
  • 解析字符串:提取单词和短语 [JavaScript]

    我需要在以空格分隔的术语列表中支持确切的短语 用引号引起来 因此 用空格字符分割相应的字符串已经不够了 Example input foo bar lorem ipsum baz output foo bar lorem ipsum baz
  • Lighthouse 多个 URL

    我需要对一个网站进行全面审核 但我想知道是否有任何方法可以让 Lighthouse 做到这一点 我知道他们不支持完整的站点审核或多个 URL 但我发现可以使用 bash 脚本来完成 因此 我将不胜感激对此案的任何帮助 或者您可能会推荐任何灯
  • 如何使用javascript将数据存储在xml文件中?

    我是 javascript 新手 并在我的项目中使用它 因为我需要读取 xml 文件 然后在操作后我想将更新后的值存储回 xml 文件中 我成功从 xml 文件获取值 但无法存储值返回到 xml 文件 这是我尝试过的代码
  • 过滤数据表中的行

    我目前的 JQuery 插件 DataTables 工作正常 并且我在页面顶部插入了一个按钮来进一步过滤列表 我还使用了 DataTables 内置的搜索栏 我希望按钮向下过滤表格 并只显示包含特定值的行 下面是我一直在做的事情 但似乎没有
  • 即使切换它时,hasClass 也始终返回 false

    我有以下代码
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer

随机推荐