我无法弄清楚MessageChannel和WebSockets之间有什么区别?
我需要以下要求:
这两项要求都满足吗?哪个更好?
答案 0 :(得分:16)
HTML5 Web Messaging API可用于在浏览器中加载的独立代码段之间进行通信(规范称它们为“浏览上下文”)。例如,如果您的页面包含<iframe>
,并且您希望在其与外部代码之间进行安全通信,则可以使用Web Messaging。考虑来自Opera开发门户的this explanation:
频道消息传递对于跨越通信特别有用 多个起源。请考虑以下情形。我们有一份文件 在http://socialsite.example包含来自的内容 http://games.example嵌入在一个iframe中,内容来自 http://addressbook.example在另一个。{/ p>
现在让我们说我们想要 从我们的地址簿网站向我们的游戏网站发送消息。我们可以 使用社交网站作为代理。然而,这意味着地址簿 获得与社交网站相同的信任级别。我们的社交网站 要么必须信任每个请求,要么为我们过滤它们。
有了频道 但是,消息传递http://addressbook.example和 http://games.example可以直接沟通。
Web Sockets API可用于在浏览器中加载的代码与服务器之间进行通信。所以它有一个完全不同的目的。由于您提到了低延迟和“全双工”的要求,我假设您的意思是客户端 - 服务器通信,因此您正在寻找Web套接字。