2014-06-11 474 views
0

是否可以訪問在由同一主線程創建的專用工作人員的主線程中創建的共享工作人員?我最初的想法是否定的,因爲這可能會導致很多併發問題,但我沒有完全理解WebWorkers的內部,但尚未明確決定。從專門的工作人員訪問共享工作人員

我的用例是讓一個專門的工作人員用服務器打開一個web套接字通道來檢索流數據源。然後這些數據將被髮送到共享工作人員,這將提供功能來操作它並通過可轉移對象返回結果。我不想將這些對象組合到一個工作單元中,因爲我希望能夠插入不同的模塊來完成數據操作,並且不希望重複代碼以與Web套接字進行通信。

回答

1

是否可以訪問在同一主線程創建的專用工作者的主線程中創建的共享worker?

是的。只需創建一個SharedWorker作爲輔助工(共享)或create a MessageChannel共享和專用工作者之間。

這可能會導致大量的併發問題

號間工人溝通是事件觸發和異步。

這些數據將被髮送到一個共享的工人,將提供的功能來操縱

,如果你需要的是一個共享的工人那不發聲。對於「提供功能」,加載到專用工作者(進行websocket通信)的簡單庫就足夠了。您甚至可以動態加載庫,在worker中使用一些依賴關係管理。沒有必要重複Web套接字代碼。