[英]Socket.io 'message' event fires, but individual listeners don't fire. Listeners registered in iframe
我有一個主頁,其中包含iframe。 主頁使用socket.io連接到我的Node.JS服務器。 套接字存儲在window.socket
。 然后,在iframe中,我使用parent.window.socket
訪問套接字。 在iframe中運行console.log(parent.window.socket)
表示它有效。
在iframe中,我有幾件事。 首先,為事件A
注冊處理程序。 它具有清晰的輸出(console.log),因此其輸出代碼不是錯誤的。 我也有socket.on('message')
來捕獲所有消息。 最后,我有一些發射將消息發送到服務器。
我已經確認服務器正在連接並接收消息,因為來自我的發射事件和連接/斷開事件都將觸發。 但是,當服務器發回一條消息作為響應時,該事件不會觸發 。 在socket.on('message')
,我收到的消息很好,帶有正確的數據和參數,但是我的事件socket.on('A')
不會觸發。
我檢查過:
編輯:也在父頁面中對其進行了測試-相同的行為。 它在socket.on('message')
接收消息,但不會觸發socket.on('A')
。
弄清楚了。 在客戶端和服務器上混合使用了socket.send()和socket.emit(),但是,根據這篇文章 ,send僅觸發'message'事件,而'emit'觸發自定義事件。 使用iframe與它無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.