跨文档消息传递和WebSockets之间的比较

时间:2016-12-03 14:24:25

标签: html5 websocket

如果我理解正确,Cross Document Messaging API允许您实时在网页之间发送和接收消息。

虽然WebSocket允许您实时在网站和服务器之间发送和接收对象。

可以替换另一个来实时构建Web应用程序吗?

如果不是,机制哪个更好,哪个更好?

1 个答案:

答案 0 :(得分:2)

window.postMessage()用于在同一浏览器中打开的协作浏览器窗口之间进行通信。它直接从一个窗口中的Javascript发送消息到另一个窗口的Javascript。它仅适用于在同一浏览器中打开的两个网页。它无法将数据发送到在其他浏览器中打开的网页。

webSocket连接是完全不同的事情。它是客户端和服务器之间的套接字连接。由于浏览器支持webSocket接口,因此您可以从Web页面到服务器进行webSocket连接。建立连接后,可以将数据从网页发送到服务器,也可以从服务器发送到网页。

webSocket不能用于直接连接两个网页。它可用于从一个网页获取信息到另一个网页,但您必须让两个网页连接到同一个服务器,然后让一个网页将数据发送到服务器并让该服务器将该数据发送到其他网页。这是多少聊天程序的工作原理。

window.postMessage()不能用于将数据发送到任何其他计算机,因此它只能在同一浏览器的窗口之间使用。