MessageChannel 和 WebSocket 之间的区别?

2023-12-19

我不明白 MessageChannel 和 WebSockets 之间有什么区别?

我需要以下要求:

  • 最大限度地减少延迟
  • 全双工
  • 最小标头数据长度

两者都满足要求吗?哪个更好?


HTML5 网络消息 API http://www.w3.org/TR/webmessaging/可用于在浏览器中加载的独立代码段之间进行通信(规范将其称为“浏览上下文”)。例如,如果您的页面包含<iframe>,并且您希望在它与外部代码之间安全地通信,您可以使用 Web 消息传递。考虑这个解释 https://dev.opera.com/articles/window-postmessage-messagechannel/#channel来自 Opera 开发门户:

通道消息传递对于跨平台通信特别有用 多重起源。考虑以下场景。我们有一个文件 在http://socialsite.example http://socialsite.example包含内容来自http://games.example http://games.example嵌入在一个 iframe 中,内容来自http://addressbook.example http://addressbook.example在另一个。

现在假设我们想要 从我们的地址簿网站向我们的游戏网站发送消息。我们可以 使用社交网站作为代理。然而,这意味着地址簿 获得与社交网站相同水平的信任。我们的社交网站 要么必须信任每个请求,要么为我们过滤它们。

有通道 然而,消息传递http://addressbook.example http://addressbook.example and http://games.example http://games.example可以直接沟通。

网络套接字 API http://www.w3.org/TR/2009/WD-websockets-20091222/可用于在浏览器和服务器中加载的代码之间进行通信。所以它有一个完全不同的目的。由于您提到了低延迟和“全双工”的要求,我假设您指的是客户端-服务器通信,因此您正在寻找网络套接字。

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

MessageChannel 和 WebSocket 之间的区别? 的相关文章

  • 如何在html5画布中向前和向后移动圆圈中的对象?

    我正在 html5 canvas 中开发一个小应用程序 我需要使用键盘按键以圆周运动移动对象 我可以使用键盘按键移动对象 但存在错误 该对象不会从同一位置向后或向前移动 任何人都可以帮助我完成此操作 请检查以下代码 任何形式的帮助将非常感激
  • 带有边框半径的CSS中的完美圆不起作用

    圆往往是椭圆形的 我想要的是完美的圆 border radius 100 不起作用我想知道为什么 http jsfiddle net 8gD2m 1 http jsfiddle net 8gD2m 1 badge display inlin
  • jQuery find() 只返回第一个匹配的结果?

    我在 jQuery 中使用 find 方法 但无法获得与选择器条件匹配的所有结果 这是我的 HTML div class something div
  • 父元素的 mousedown 事件中的 offsetX 和 offsetY 错误

    我在 mousedown 上获取 offsetX 时遇到问题 下面是我的代码 div Click the text The mouseDown function is triggered when the mouse button is p
  • 转换为 PDF 后,Flex 布局中的 HTML 表格变得重叠

    尝试使用将 html 文件转换为 pdfweasyprint 但由于bug https github com Kozea WeasyPrint issues 1805 in weasyprint 我不能使用flex布局 因为它与第一行中的两
  • Bootstrap 4 行布局没有响应

    我正在使用 Bootstrap 4 在 MEAN 堆栈上为新闻文章布局创建一个 html 模板 但这应该不重要 对于这种总体布局的要求是 一篇 特色 文章位于其自己的列中 而其他 8 篇文章位于另一列中的两行中 当在较小的屏幕或移动设备上查
  • 如何使用 Angular 2 实现拖放(v2.0.0-beta.15)

    我想以角度实现一个简单的拖放列表 例如我可以更改其顺序的杂货列表 iv 在使用之前实现它https github com akserg ng2 dnd https github com akserg ng2 dnd但我的问题是我使用角度2
  • 在 C 和 python 中实现 sendall() 和 recvall()

    我目前正在尝试在用 C 编写的服务器中实现 sendall 函数 并在用 python 编写的相应客户端上实现 receiveall 函数 当服务器和客户端都用相同的语言编写时 即都用 c 或都用 python 编写 我可以让服务器和客户端
  • 给定 url,如何加载图像,然后将其转换为 Javascript 中的 tf.tensor 数据?

    我是前端和 javascript 新手 现在我正在编写一个基于 CNN 的 Web 应用程序 要从给定的 url 加载图像 然后将图像输入 CNN 我尝试编写以下代码 async function getImage var img new
  • 在占位符中添加 HTML

    我喜欢使用 HTML 占位符 因为它有助于向用户描述他们需要输入的内容类型 但是 有时您需要为用户提供更多信息 而不仅仅是简单的句子 基本上我希望能够在我的文本区域占位符中添加换行符 制表符等 我听说过使用特殊编码来做到这一点 并且已经使用
  • 从 firebase 数据库获取最高分值

    在我的网站上有一些我从 firebase 获得的电影 电影的分数在0到100之间 我已经在我的网站上找到了所有电影 我还想按降序显示它们 例如评分最高的 5 部电影 我怎样才能实现这一点 感谢您的回答 const app initializ
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • 等待动态加载脚本

    在我的页面正文中 我需要插入以下代码作为 AJAX 调用的结果 p Loading jQuery p p Using jQuery p 我不能使用 load 由于文档已经加载 因此该事件不会触发 这安全吗 如果没有 我如何确保在执行自定义生
  • javascript获取网页中选定文本的段落

    突出显示文本后 我想获取所选文本所在的段落 var select window content document getSelection 请问有什么指点吗 这实际上很难做到 因为你必须考虑六种情况 所选内容不在一个段落内 简单 整个选择都
  • 如何使链接悬停时的背景图像模糊?

    当您用鼠标光标悬停链接时 我想让我的背景图像模糊 5 像素 有什么简单的方法可以实现这一点吗 我有点纠结于类和 id 在这里 pic background url http www metalinjection net wp content
  • Jquery 关注下一个带有类的元素

    我正在尝试创建一个函数 当按下 Enter 键时 会选择带有类的下一个输入 我已经设法 focus 同一行中的下一个元素 但是 如果我需要选择下一行的下一个输入 它将无法继续 下一行中的第一个 quantity 文本框需要获得焦点 控制台没
  • 适用于 HTML5 混合应用程序的 CORS

    我读过很多关于 CORS 的文章 以及允许 Access Control Allow Origin 如何成为 Web 服务器的安全漏洞 但没有一篇文章解释了如何允许 HTML5 混合应用程序访问某些不允许使用通配符 的域上托管的 Web 服
  • 如何使网站适应用户的屏幕分辨率?

    我正在使用 1024x768 屏幕分辨率来设计我的网站 当您从屏幕分辨率较小 较大的计算机上的浏览器中查看网站时 网站开始变形 无论用户的屏幕分辨率是什么 如何使网站适应用户的屏幕分辨率 我相信通过 JavaScript 或 CSS 是可能
  • CSS交付优化:如何推迟CSS加载?

    我在尝试着优化 CSS 交付遵循针对开发人员的谷歌文档https developers google com speed docs insights OptimizeCSSDelivery example https developers

随机推荐

  • 无法在 cmakelists.txt 中使用 protobuf

    我正在尝试运行 protobuf repo 中给出的示例here https github com google protobuf tree master examples c 版本 我已经成功安装了该库并且能够运行Makefile 但在运
  • 三重感叹号的使用

    查看我们一个项目的源代码 我发现我们在条件语句中使用了三个感叹号的一些地方 如下所示 if someVar 现在 我明白这不是某种很少使用的运算符 它只是连续三个否定 例如 someVar 我不明白它有什么用 在我看来它可以安全地用单个感叹
  • Qt 中 QMainWindow 上的深色透明层

    我需要在我的应用程序中实现一个 正在加载 窗口 但我更喜欢用上面有文本的深色透明层覆盖整个 QMainWindow 有人知道该怎么做吗 我不知道如何在 Qt 中重叠小部件 布局 任何帮助将不胜感激 这个答案位于我的一系列与覆盖相关的答案中
  • 无法在 Windows 10 和 Python 3.7 上安装 dlib

    我正在尝试在 Windows 10 上的 Anaconda Python 3 7 上安装 OpenCV dlib 我已经安装了 Visual studio 2015 作为先决条件以及 CMake 当我尝试在计算机上安装 dlib 时 出现以
  • Android Studio 中未处理的异常 Class.forname("com.google.cloud.sql.jdbc.Driver")

    我在 Android Studio 中有一个项目谷歌云端点模块 我正在尝试将我的端点模块连接到一个实例谷歌云SQL我在同一个项目中拥有的 在 IDE 中我看到以下错误 Unhandled exception java lang ClassN
  • C++ 变量名前的“ :: ”

    include
  • Android从服务器下载图像并保存到SD卡而不使用BitmapFactory

    我正在尝试创建一个用于从服务器下载图像并将其显示到列表视图中的应用程序 我遇到的问题是内存泄漏并使我的应用程序崩溃 我在 Android 博客中搜索这样的link http android developers blogspot com 2
  • 在 Chrome 29+ 中使用 CSS 变量

    我的 Chrome 浏览器刚刚从版本 28 切换到版本 29 切换后 我的 css3 代码在新版本中停止工作 我想知道是否有人知道如何解决该问题 而无需将我的浏览器设置回版本 28 更新 Chrome 30从 Chrome 29 过渡到 C
  • 根据一列获取两个数据表之间的差异

    我有以下场景 表 A 有 50 条记录 表 B 有 2 条记录 我需要定义一个新表 例如 TableDiff 它应包含表 A 中不存在于表 B 中的 48 条记录 我的问题是表 A 和表 B 不相同 但我有该字段rowId它存在于我需要使用
  • 在 Dart 中测试 unicode 字素簇相等性?

    像 这样的 unicode 字符可以通过两种方式表示为 UTF16 字符串 Dart 的本机实现 u00e9 u0065 u0301 e 组合变音符号 由于它们内部不同 测试字符串或符文的相等性将表明它们不相等 print u00e9 u0
  • 如何在Google排行榜中默认打开“全部”而不是“社交”?

    我已将 Google 排行榜集成到我的 Android 游戏应用程序中 当我打开它时 它默认进入 社交 模式 又名我的谷歌圈子 我需要手动切换到 全部 模式 来自世界各地的玩家 如何将 全部 模式设置为默认模式 有一个重载方法 它接受所有参
  • Angular 5 Http Interceptors 注入服务时出错

    在 Angular 5 中使用自定义 HttpInterceptors 时 我收到以下奇怪的依赖注入行为 下面的简化代码可以正常工作 export class AuthInterceptor implements HttpIntercept
  • 类“QueryDocumentSnapshot”没有实例方法“[]”。接收者:“QueryDocumentSnapshot”的实例尝试调用:[](“名称”)

    我正在尝试从 FireStore 检索这两个值 姓氏 test 字符串 姓名 Carlos 字符串 但是我收到这个错误 Another exception was thrown NoSuchMethodError Class QueryDo
  • ios10 iphone5s voip siphon pjsip2.5.5 打开声音设备时出错

    有人可以告诉我为什么会发生这种情况吗 iOS10 iPhone5s VOIP虹吸pjsip2 5 5 这些问题并不是每次都会出现 有时当你想拨打电话或接听电话时就会出现 添加于 20161226 打开声音设备时出错 14 06 03 137
  • Qt 属性语法的正确使用

    当我使用Q PROPERTY要定义一个属性 我确保继承自QObject并声明Q OBJECT宏位于类定义的开头 我这样声明属性 Q PROPERTY QString MyProp READ getMyProp WRITE setMyProp
  • Libgdx:将 2 个演员依次放置

    我使用 libgdx 的 scene2d 内置 UI 库在我的游戏中制作 UI 我很有趣 如何在一张桌子上绘制 2 个图像 或演员 我正在寻找类似的可绘制图层 http developer android com reference and
  • 错误:pandas 数字列上的代码因字符串格式错误而中断

    我正在一张桌子上阅读pandas 其中一列的日期格式为 YYYYMMMDD 到目前为止 在我的所有尝试中 它都是作为数字列读入的 我可以先用笨重的代码正确地消化它 尽管很慢 但随后当前版本会以我不理解的方式出现问题 所以 这有效 treat
  • iPhone 4 摄像头规格 - 视野/垂直-水平角度

    有人知道新 iPhone4 摄像头的视野值吗 我正在做一些 AR 应用程序 我想知道后置摄像头的水平和垂直角度 Thanks 如果传感器高 3 39 毫米 参考横向模式 则其一半为 1 695 毫米 iPhone 4 的焦距为 3 85 毫
  • 以下算法的时间复杂度是多少? [复制]

    这个问题在这里已经有答案了 有人能告诉我这个算法的时间复杂度是多少吗 请记住 第二个方法 findMax 根据其获取的索引在数组上运行 这意味着该方法 findMax 不会每次都在所有数组上运行 我认为这个算法的时间复杂度是 O n 但也许
  • MessageChannel 和 WebSocket 之间的区别?

    我不明白 MessageChannel 和 WebSockets 之间有什么区别 我需要以下要求 最大限度地减少延迟 全双工 最小标头数据长度 两者都满足要求吗 哪个更好 HTML5 网络消息 API http www w3 org TR