2016-12-03 95 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()不能用於將數據發送到任何其他計算機,因此它只能在同一瀏覽器中的窗口之間使用。