2014-10-06 75 views
2

是否有可能在使用Isolate.spawnuri創建的Dart隔離內使用websockets窗體?websocket和Isolate.spawnuri

我的理解是,客戶端,Isolate.spawnuri使用WebWorkers和WebWorker不能使用dart:html(DOM),但客戶端,websockets是dart:html的一部分。所以這是一個不行?

THX

(這是很難測試,試圖與飛鏢編輯器來做到這一點時,我沒有得到任何錯誤或信息,在衍生分離是不可見的,並拋出沒有明顯的錯誤,它只是掛起)

這裏有一些代碼來測試這個:https://gist.github.com/kgersen/148460d056f498a849ef

+1

您的隔離區似乎掛起,因爲您沒有捕獲實例化WebSocket時引發的對象。您必須捕獲隔離區主()內的所有拋出的對象,否則隔離區將暫停或終止。如果您想查看錯誤信息,則必須通過SendPort將其發送回主隔離區。我的測試表明,在spawnuri創建的隔離體內使用某些類會導致拋出的UnimplementedError,但在包含實例化WebSocket的DOM時拋出String(SDK 1.6)時使用。 – 2014-10-07 12:51:54

+0

是啊addind一個捕獲給出: DOM訪問未啓用此隔離 – KGJV 2014-10-07 13:09:39

回答

2

這是正在進行的工作。這將是一個isolate.spawnDomXxxx,它允許導入dart:html。請參閱http://dartbug.com/3050

+0

是的,但自2012年以來它處於「分離」狀態。這真的是一個WIP嗎? – KGJV 2014-10-07 13:12:55

+0

長期以來,分離菌沒有多少進展,但根據我的經驗,最近幾個月的分離菌取得了很好的進展(監測http://dartbug.com更新)。最近實施了對分離物中斷點的支持,處理錯誤的不同方法,關於結束分離物的通知,... – 2014-10-07 13:15:28

+0

tx我會繼續關注那個。 – KGJV 2014-10-07 13:16:59