的行爲我很好奇onConnect,connect和port.postMessage/onMessage如果有多個偵聽器應該表現如何。文檔不清楚會發生什麼,以及斷開連接的位置。extension.onConnect,extension.connect和端口
假設我有三個上下文(後臺頁面,內容腳本和瀏覽器操作彈出窗口) - 每個啓動時都註冊了一個onConnect監聽器。後臺頁面要發送消息給他們兩個 - 我可以簡單地連接(),然後通過端口發送消息?如果我想要收據確認怎麼辦?我可以在接收onConnect的兩種上下文中說 - port.postMessage({received:true})嗎?我會在連接()的人那裏收到兩條消息嗎?我會在調用connect()的背景頁面中收到onConnect()消息嗎?
我讀過http://code.google.com/chrome/extensions/messaging.html和http://code.google.com/chrome/extensions/extension.html# - 他們很清楚sendRequest和onRequest是如何工作的,但我需要發送確認,我不認爲我可以充分地從sendRequest中獲取。
我的問題歸結爲:Port對象有多少「端」,以及它如何處理來自任何端的「斷開」調用?
我喜歡的例子 - 但是我不理解端口是他們是否始終只有兩個目的,或者如果他們可以在應用程序的許多不同部分之間做溝通。 – Daniel 2012-04-02 20:09:19
該API描述了端口創建「偵聽器」的方式,知道Google通常會做的事情,我認爲它可以有多個端點(以port.name來區分)。解決這個問題的最好方法是測試它。我的GitHub Repo提供了一個例子,只需添加缺少的內容即可。 – jjNford 2012-04-02 20:53:02