2016-12-03 52 views
0

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

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

一个可以取代另一个实时构建一个Web应用程序吗?

如果没有,哪个机制更好,为了什么?

+1

什么是“交叉文档消息API”?当我为此谷歌,我不清楚你到底在问什么。你只是在谈论'window.postMessage()'可以用来在同一个浏览器中打开浏览器窗口之间进行通信? – jfriend00

+0

是的,我在说window.postMessage() – simhumileco

回答

2

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

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

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

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